Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 查询数据库时如何避免数据缓存?_Sql Server 2008_Entity Framework_Caching_Asp.net Mvc 4 - Fatal编程技术网

Sql server 2008 查询数据库时如何避免数据缓存?

Sql server 2008 查询数据库时如何避免数据缓存?,sql-server-2008,entity-framework,caching,asp.net-mvc-4,Sql Server 2008,Entity Framework,Caching,Asp.net Mvc 4,我在ASP.NET MVC4和Entity Framework 5中遇到了一个奇怪的问题:我正在构建的web应用程序从数据库中检索数据,并将其作为Json发送到页面上的viewmodel中,然后将其显示在页面上的表中。这些数据表示一些数据点的状态,这些数据点时不时地发生变化 现在我观察到以下行为: 当我从开发服务器运行web应用程序时,一切正常,显示的数据是最新的 当我将web应用部署到生产服务器(与同一个DB对话)时,该页面并不表示数据的当前状态 我不能中断检索数据的控制器方法,因为它只发

我在ASP.NET MVC4和Entity Framework 5中遇到了一个奇怪的问题:我正在构建的web应用程序从数据库中检索数据,并将其作为Json发送到页面上的viewmodel中,然后将其显示在页面上的表中。这些数据表示一些数据点的状态,这些数据点时不时地发生变化

现在我观察到以下行为:

  • 当我从开发服务器运行web应用程序时,一切正常,显示的数据是最新的
  • 当我将web应用部署到生产服务器(与同一个DB对话)时,该页面并不表示数据的当前状态
我不能中断检索数据的控制器方法,因为它只发生在生产服务器上,但是当我查看Json数据时,我可以看到它实际上是旧数据。因此,似乎EF正在缓存检索到的数据。这是一个严重的问题,因为我们将此web应用程序用于工业监控目的,因此需要依赖最新数据


有人遇到过同样的问题吗?非常感谢您在这方面的任何帮助

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


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

如果您使用jquery通过get with ajax调用它,那么一定要添加$.ajaxSetup({cache:false});到你的页面谢谢你的提示,我最好把它包括进去!谢谢,做得很好!缓存/对象跟踪通常是一个好主意,但在这里,数据库中的数据会从其他应用程序中更改。在我的例子中,数据一致性比性能更重要。