EntityFramework 在每次查询之前强制全局重新加载
EntityFramework force globally reload before each query
我的数据库中有一个 DBEntities.edmx
。在我的 类 之一中,我使用:
DBEntities _db = new DBEntities()
现在是我的问题,查询后 EF 缓存解决方案,如果数据库中的一个值发生更改,.edmx
使用缓存的旧值。
我找到了两个解决方法:
1.: _db.tbl_user.AsNoTracking().Where(x=>x.ID == _ID)
2.: 重新创建 DEBentities: _db = new DBEntities()
但我想知道是否有可能在全局范围内强制执行,如果值已更改,EF 会更新 DEBentities
are you keeping one _db variable and using it all the time? then
don't. Dispose it (preferably with a using statement) and create a new
instance of your DbContext each time.
The data context is not designed to be long-lived. Reusing it over multiple operations is a mistake in your design
要解决此问题,需要使用 using 语句:
using(DBEntities _db = new DBEntities())
{
/* Your DB access here */
}
您可以在 Do I always have to call Dispose() on my DbContext objects?
上找到完整的描述
我的数据库中有一个 DBEntities.edmx
。在我的 类 之一中,我使用:
DBEntities _db = new DBEntities()
现在是我的问题,查询后 EF 缓存解决方案,如果数据库中的一个值发生更改,.edmx
使用缓存的旧值。
我找到了两个解决方法:
1.: _db.tbl_user.AsNoTracking().Where(x=>x.ID == _ID)
2.: 重新创建 DEBentities: _db = new DBEntities()
但我想知道是否有可能在全局范围内强制执行,如果值已更改,EF 会更新 DEBentities
are you keeping one _db variable and using it all the time? then don't. Dispose it (preferably with a using statement) and create a new instance of your DbContext each time.
The data context is not designed to be long-lived. Reusing it over multiple operations is a mistake in your design
要解决此问题,需要使用 using 语句:
using(DBEntities _db = new DBEntities())
{
/* Your DB access here */
}
您可以在 Do I always have to call Dispose() on my DbContext objects?
上找到完整的描述