【发布时间】:2015-01-19 12:15:33
【问题描述】:
我的数据库中有一个 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
【问题讨论】:
-
为每个请求使用新的上下文
-
您是否保留了一个
_db变量并一直使用它?然后不要。Dispose它(最好使用 using 语句)并每次创建DbContext的新实例。 -
数据上下文并非设计为长期存在的。在多个操作中重复使用它是您设计中的错误。
标签: c# asp.net database entity-framework