【问题标题】:Turn Off Object Caching in Entity Framework CTP5在实体框架 CTP5 中关闭对象缓存
【发布时间】:2011-02-06 12:31:00
【问题描述】:
我在 CTP 5 中使用 Entity Framework Code First 的东西时遇到了麻烦。它正在缓存对象,我不希望它这样做。例如,我加载了一个加载对象的页面(使用 ASP.NET MVC 站点)。然后我去更改数据库。我重新加载页面并且没有反映更改。如果我杀死该站点并重新运行它,那么它显然会重新获取。我如何,通常对于一个类型,甚至对于一个特定的查询,告诉它总是去获取一个新的副本。我认为这可能与 MergeOption 有关,但我无法找到适用于 CTP 5 的示例。谢谢。
【问题讨论】:
标签:
entity-framework-ctp5
【解决方案1】:
好的,想通了。以下内容有时会从 EF 缓存中提取:
return (from m in _dataContext.Monkeys
where m.MonkeyId == monkeyId
select m).FirstOrDefault();
您可以使用 AsNoTracking() 绕过更改跟踪/缓存内容:
return (from m in _dataContext.Monkeys.AsNoTracking()
where m.MonkeyId == monkeyId
select m).FirstOrDefault();