Якщо ви хочете перезавантажити певні сутності, за допомогою DbContextApi RX_DID_RX вже дав вам відповідь.
Якщо ви хочете перезавантажити / оновити всі завантажені об'єкти:
Якщо ви використовуєте Entity Framework 4.1+ (EF5 або EF 6, ймовірно), API DbContext:
public void RefreshAll()
{
foreach (var entity in ctx.ChangeTracker.Entries())
{
entity.Reload();
}
}
Якщо ви використовуєте entitFramework 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);
}
Найкраща порада в будь-якому випадку, спробуйте використовувати "короткочасний контекст", і ви уникнете подібних проблем.
Я написав пару статей з цього приводу:
https://christianarg.wordpress.com/2013/06/13/entityframework-refreshall-loaded-entities-from-database/