【发布时间】:2020-05-18 23:01:51
【问题描述】:
我的 Startup 中有此代码。
var connection = Configuration.GetConnectionString("DefaultConnection")?.Replace("[BD_PASS]", Environment.GetEnvironmentVariable("BD_PASS"));
services.AddDbContext<BdContext>(options => options.UseSqlServer(connection));
services.AddMemoryCache(op =>
{
op.SizeLimit = int.Parse(Environment.GetEnvironmentVariable("CACHE_SIZE_LIMIT") ?? "10");
});
问题是我不知道 Entity Framework Core 会拦截我对数据库的查询。所以,我得到了一个
_context.Product.ToList();
但是当上面的代码运行时我收到了这条消息。
设置大小限制时,缓存条目必须指定大小值
我可以在配置级别做些什么来说“嘿 EFC,不要费心缓存任何东西。”
【问题讨论】:
-
感谢@NateBarbettini 的评论,但事实并非如此。我在互联网上只能找到不想使用大小限制的人,但有些图书馆正在使用。在这里,我真的很想使用 Size_Limit,因为这是我的代码的要求。
-
你能发布一个简短但完整的问题重现吗?
-
我想没有什么要补充的了,除了我使用的是 ASP.NET Core 2.2 并且该请求是针对为每个请求创建的瞬态 DbContext 发出的。
-
啊,我现在明白你的问题了。您想使用带有某些参数的 MemoryCache,但实际上 EF Core 也在使用 MemoryCache,而且效果不佳。
标签: c# .net entity-framework asp.net-core entity-framework-core