EntityFramework强制在每次查询之前全局重新加载

时间:2015-01-19 12:15:33

标签: c# asp.net database entity-framework

我的数据库中有 DBEntities.edmx 。在我的一个类中,我使用:

DBEntities _db = new DBEntities()

现在是我的问题,在查询后,EF缓存解决方案,如果数据库中的一个值发生更改, .edmx 将使用缓存的旧值。

我找到了两个解决方法:

1:_db.tbl_user.AsNoTracking().Where(x=>x.ID == _ID)

2:重新创建DBEntities:_db = new DBEntities()

但我想知道是否有可能全局强制,如果值已更改,EF会更新DBEntities

1 个答案:

答案 0 :(得分:0)

  

你保留一个_db变量并一直使用它吗?然后   别。处理它(最好使用using语句)并创建一个新的   每次都是你的DbContext的实例。

     

数据上下文并非设计为长期存在。在多个操作中重复使用它是您设计中的一个错误

要解决此问题,需要使用using语句:

using(DBEntities _db = new DBEntities())
{
    /* Your DB access here */
}

您可以在Do I always have to call Dispose() on my DbContext objects?

上找到完整说明