我正在使用Entity Framework Core开发ASP.Net Core 2.0项目
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.0.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.0.0" PrivateAssets="All" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.0.0"/>
Run Code Online (Sandbox Code Playgroud)
在我的一个列表方法中,我收到此错误:
InvalidOperationException: A second operation started on this context before a previous operation completed. Any instance members are not guaranteed to be thread safe.
Microsoft.EntityFrameworkCore.Internal.ConcurrencyDetector.EnterCriticalSection()
Run Code Online (Sandbox Code Playgroud)
这是我的方法:
[HttpGet("{currentPage}/{pageSize}/")]
[HttpGet("{currentPage}/{pageSize}/{search}")]
public ListResponseVM<ClientVM> GetClients([FromRoute] int currentPage, int pageSize, string search)
{
var resp = new ListResponseVM<ClientVM>();
var items = _context.Clients
.Include(i => i.Contacts)
.Include(i => i.Addresses)
.Include("ClientObjectives.Objective")
.Include(i => i.Urls)
.Include(i => i.Users)
.Where(p => string.IsNullOrEmpty(search) …Run Code Online (Sandbox Code Playgroud) 我想使用Redis功能,例如来自MVC控制器的位域和哈希字段.据我所知,ASP.NET核心内置了缓存支持,但这只支持基本的GET和SET命令,而不支持我在应用程序中需要的命令.我知道如何从普通(例如.控制台)应用程序使用StackExchange.Redis,但我不知道如何在ASP站点中设置它.
我应该在哪里放置所有连接初始化代码,以便之后可以从控制器访问它?这是我会使用依赖注入的东西吗?
我有一个格式的密钥:
Error.1
Error.24
Error.32
Run Code Online (Sandbox Code Playgroud)
使用StackExchange.Redis,我将如何处理KeyDelete与格式匹配的所有键Error.?
在另一个答案中,我看到了LUA脚本:
EVAL "return redis.call('del', unpack(redis.call('keys', ARGV[1])))" 0 Error.*
Run Code Online (Sandbox Code Playgroud)
但是我不确定如何使用 Database.ScriptEvaluate()