我对ASP.NET MVC4和Entity Framework 5有一个奇怪的问题:我正在构建的Web应用程序从数据库中检索数据并将其作为Json发送到页面上的viewmodel中,然后从中呈现在页面上的表格中。数据表示一些数据点不时变化的状态。
现在我发现了以下行为:
我无法断开检索数据的控制器方法,因为它只发生在生产服务器上,但是当我查看Json数据时,我可以看到它实际上是旧数据。所以似乎EF正在缓存检索到的数据。这是一个严重的问题,因为我们将此Web应用程序用于工业监控目的,因此需要依赖于最新数据。
有没有人遇到同样的问题?非常感谢任何帮助!
答案 0 :(得分:1)
我不太了解实体框架,但我认为这与变更跟踪有关。我试着禁用它来强制EF重新查询数据库,我想(如果我错了,其他人可以纠正我)但除非你在ObjectContext上调用了SaveChanges,否则重新查询相同的数据数据库不会再被查询了。
我已经使用MergeOption = MergeOption.NoTracking
(在ObjectSet上)在我的项目中将其关闭。