日期:2014-05-18  浏览次数:20870 次

折腾了两天了,关于entityframework4的数据刷新问题!
使用类似如下查询:
  using (var db = new NorthwindEntities1 ())
  {
// 针对Customers查询将使用MergeOption.NoTracking
  db.Customers.MergeOption = MergeOption .NoTracking;
  var cust = db.Customers.Where(c => c.City == "London" );

  }

我在数据库中增加数据后,再执行上述方法获取数据,
但结果发现取得的经常都是本地缓存的数据,得过个几分钟再取,可能会取得最新的数据。

折腾了两天了。

------解决方案--------------------
http://fhuan123.iteye.com/blog/1115082
------解决方案--------------------
探讨
使用类似如下查询:
using (var db = new NorthwindEntities1 ())
{
// 针对Customers查询将使用MergeOption.NoTracking
db.Customers.MergeOption = MergeOption .NoTracking;
var cust = db.Customers.Where(c => c.C……

------解决方案--------------------
换一种写法咯,不要用这个
var db = new NorthwindEntities1 ()

应该有NorthwindEntities1 属性,设置不用缓存的


不过用了using之后,理论上是会自动销毁NorthwindEntities1 

不过真的只是理论,可能NorthwindEntities1 调用了某个静态类吧
------解决方案--------------------
看楼主的代码没理由从本地缓存里拿数据,楼主检查一下二级缓存的配置。

哥对EF是真不熟