Question

Comment mettre à jour TOUTES les entités modifiées du magasin de données et réinitialiser leurs valeurs modifiées à la valeur du magasin d'origine

La méthode ObjectContext.Refresh requiert en paramètre les entités à actualiser.

Réponse acceptée

Ce qui suit fonctionne habituellement:

Context.Refresh(RefreshMode.StoreWins, _
    Context.ObjectStateManager.GetObjectStateEntries())

Cela provoque parfois des problèmes avec EntityRelations. regardez mon commentaire pour plus de détails.


Réponse populaire

Vous pouvez utiliser ce code:

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);
}

J'ai écrit un post sur la façon de mettre à jour () et d'actualiser le contexte d'une autre manière:

http://christianarg.wordpress.com/2013/06/13/entityframework-refreshall-loaded-entities-from-database/



Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow