Sql server 2008 查询数据库时如何避免数据缓存?
我在ASP.NET MVC4和Entity Framework 5中遇到了一个奇怪的问题:我正在构建的web应用程序从数据库中检索数据,并将其作为Json发送到页面上的viewmodel中,然后将其显示在页面上的表中。这些数据表示一些数据点的状态,这些数据点时不时地发生变化 现在我观察到以下行为: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对话)时,该页面并不表示数据的当前状态 我不能中断检索数据的控制器方法,因为它只发
- 当我从开发服务器运行web应用程序时,一切正常,显示的数据是最新的
- 当我将web应用部署到生产服务器(与同一个DB对话)时,该页面并不表示数据的当前状态
有人遇到过同样的问题吗?非常感谢您在这方面的任何帮助 我不太了解实体框架,但我认为这与变更跟踪有关。我想,我会尝试禁用它以强制EF重新查询数据库(如果我错了,其他人可以纠正我),但除非对ObjectContext调用了SaveChanges,否则如果重新查询相同的数据,数据库将不会再次被查询
我已经在我的项目中使用了
MergeOption=MergeOption.NoTracking
(在ObjectSet上)来关闭它。如果您使用jquery通过get with ajax调用它,那么一定要添加$.ajaxSetup({cache:false});到你的页面谢谢你的提示,我最好把它包括进去!谢谢,做得很好!缓存/对象跟踪通常是一个好主意,但在这里,数据库中的数据会从其他应用程序中更改。在我的例子中,数据一致性比性能更重要。