यदि आप विशिष्ट संस्थाओं को पुनः लोड करना चाहते हैं, तो DbContextApi के साथ, RX_DID_RX ने आपको पहले ही जवाब दे दिया है।
यदि आप अपने द्वारा लोड की गई सभी संस्थाओं को पुनः लोड / रीफ्रेश करना चाहते हैं:
यदि आप इकाई फ्रेमवर्क 4.1+ (EF5, या EF 6 शायद), DbContext API का उपयोग कर रहे हैं:
public void RefreshAll()
{
foreach (var entity in ctx.ChangeTracker.Entries())
{
entity.Reload();
}
}
यदि आप शस्त्रागार 4 का उपयोग कर रहे हैं (ObjectContext API):
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/