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?

上找到完整的描述