在实体框架CTP5中关闭对象缓存

时间:2011-02-06 01:52:08

标签: entity-framework-ctp5

我在使用CTP 5中的实体框架代码优先级内容时遇到问题。它正在对对象进行缓存,我不希望这样做。例如,我加载了一个加载对象的页面(使用ASP.NET MVC站点)。然后我去更改数据库。我重新加载页面,并没有反映更改。如果我杀死该网站并重新运行它,那么它显然会重新获取。对于类型,甚至是特定查询,我如何告诉它始终获取新副本。我认为它可能与MergeOption有关,但我很难找到适用于CTP 5的示例。谢谢。

1 个答案:

答案 0 :(得分:15)

好的,想通了。以下有时会从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();