【发布时间】:2014-03-09 14:24:15
【问题描述】:
也许我误解了 DbContext 和 DbSet 所做的缓存,但我的印象是会有一些缓存继续进行。当我运行以下代码时,我看到了我不会预料到的行为:
var ctx = CreateAContext();
var sampleEntityId = ctx.SampleEntities.Select(i => i.Id)
.Single(i => i == 3); //Calls DB as expected
var cachedEntityId = ctx.SampleEntities.Select(i => i.Id)
.Single(i => i == 3); //Calls DB unexpectedly
这里发生了什么?我认为您从DbSet 获得的部分内容是,它会在查询数据库之前首先检查本地缓存以查看该对象是否存在。我在这里缺少某种配置选项吗?
【问题讨论】:
-
@Jonesy 我会更新它以提供更清晰的示例。
-
@Adriano 不幸的是,这个答案已有 5 年历史,并且指的是旧版本的 EF。
标签: c# entity-framework caching entity-framework-6