0

我在使用 ASP.NET MVC4 和 Entity Framework 5 时遇到了一个奇怪的问题:我正在构建的 Web 应用程序从数据库中检索数据并将其作为 Json 发送到页面上的视图模型中,然后从该视图模型中呈现在表中在页面上。数据代表不时变化的一些数据点的状态。

现在我观察到以下行为:

  • 当我从我的开发服务器运行 Web 应用程序时,一切正常并且显示的数据是最新的。
  • 当我将 Web 应用程序部署到生产服务器(与同一个数据库通信)时,页面不代表数据的当前状态

我不能断点检索数据的控制器方法,因为它只发生在生产服务器上,但是当我查看 Json 数据时,我可以看到它实际上是旧数据。所以看起来 EF 正在缓存检索到的数据。这是一个严重的问题,因为我们将此 Web 应用程序用于工业监控目的,因此需要依赖最新数据。

有没有人遇到过同样的问题?非常感谢您对此的任何帮助!

4

1 回答 1

1

我不太了解实体框架,但我认为这与更改跟踪有关。我会尝试禁用它以强制 EF 重新查询数据库,我认为(如果我错了,其他人请纠正我)但除非在 ObjectContext 上调用 SaveChanges,如果您重新查询数据库中的相同数据不会再被查询。

我已经使用MergeOption = MergeOption.NoTracking(在 ObjectSet 上)在我的项目中将其关闭。

于 2013-08-06T08:36:39.707 回答