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

Mal*_*och 10 entity-framework-ctp5

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

Mal*_*och 15

好吧,想通了.以下有时会从EF缓存中提取:

return (from m in _dataContext.Monkeys
        where m.MonkeyId == monkeyId
        select m).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

您可以使用AsNoTracking()绕过更改跟踪/缓存内容:

return (from m in _dataContext.Monkeys.AsNoTracking()
        where m.MonkeyId == monkeyId
        select m).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)