Domanda

Come aggiornare TUTTE le entità sporche dall'archivio dati e reimpostare i valori modificati sul valore di archivio originale?

Il metodo ObjectContext.Refresh richiede come parametro le entità da aggiornare.

Risposta accettata

Il seguente di solito funziona:

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

A volte causa problemi con EntityRelations. guarda il mio commento per ulteriori dettagli.


Risposta popolare

Puoi usare questo codice:

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

Ho scritto un post su come RefreshAll () e aggiornare il contesto in altri modi:

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



Related

Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché