Как обновить ВСЕ грязные объекты из хранилища данных и сбросить их измененные значения до первоначального значения хранилища?
Метод ObjectContext.Refresh в качестве параметра требует обновления сущностей.
Следующее обычно работает:
Context.Refresh(RefreshMode.StoreWins, _
Context.ObjectStateManager.GetObjectStateEntries())
Иногда это вызывает проблемы с EntityRelations. посмотрите на мой комментарий для получения дополнительной информации.
Вы можете использовать этот код:
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);
}
Я написал пост о том, как RefreshAll () и обновить контекст некоторыми другими способами: