Si vous souhaitez recharger des entités spécifiques, avec le DbContextApi, RX_DID_RX vous a déjà donné la réponse.
Si vous souhaitez recharger / actualiser toutes les entités que vous avez chargées:
Si vous utilisez Entity Framework 4.1+ (EF5 ou EF 6 probablement), API DbContext:
public void RefreshAll()
{
foreach (var entity in ctx.ChangeTracker.Entries())
{
entity.Reload();
}
}
Si vous utilisez entityFramework 4 (API ObjectContext):
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);
}
Le meilleur conseil de toute façon est d'essayer d'utiliser un "contexte de courte durée" et vous éviterez ce genre de problèmes.
J'ai écrit quelques articles sur le sujet:
https://christianarg.wordpress.com/2013/06/13/entityframework-refreshall-loaded-entities-from-database/