Frage

Wie kann man ALLE schmutzigen Entitäten aus dem Datenspeicher aktualisieren und ihre geänderten Werte auf den ursprünglichen Wert zurücksetzen?

Die Methode ObjectContext.Refresh benötigt als Parameter die zu aktualisierenden Entitäten.

Akzeptierte Antwort

Folgendes funktioniert normalerweise:

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

Es verursacht manchmal Probleme mit EntityRelations. schau in meinen Kommentar für weitere Details.


Beliebte Antwort

Sie können diesen Code verwenden:

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

Ich habe einen Post geschrieben, wie RefreshAll () aktualisiert und der Kontext auf andere Weise aktualisiert werden kann:

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



Related

Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum