Shi*_*mmy 14 entity-framework refresh reload dirty-data objectstatemanager
如何更新数据存储中的所有脏实体,并将更改后的值重置为原始存储值?
ObjectContext.Refresh方法需要刷新实体作为参数.
Shi*_*mmy 16
以下通常有效:
Context.Refresh(RefreshMode.StoreWins, _
Context.ObjectStateManager.GetObjectStateEntries())
Run Code Online (Sandbox Code Playgroud)
它有时会导致EntityRelations出现问题.查看我的评论以获取更多详细信息.
Chr*_*uez 11
您可以使用此代码:
public void RefreshAll()
{
// Get all objects in statemanager with entityKey
// (context.Refresh will throw an exception otherwise)
var refreshableObjects = (from entry in context.ObjectStateManager.GetObjectStateEntries(
EntityState.Deleted
| EntityState.Modified
| EntityState.Unchanged)
where entry.EntityKey != null
select entry.Entity);
context.Refresh(RefreshMode.StoreWins, refreshableObjects);
}
Run Code Online (Sandbox Code Playgroud)
我写了一篇关于如何RefreshAll()的文章,并以其他方式刷新上下文:
| 归档时间: |
|
| 查看次数: |
28299 次 |
| 最近记录: |