หากคุณต้องการโหลดเอนทิตีเฉพาะใหม่ด้วย DbContextApi RX_DID_RX ได้ให้คำตอบแล้ว
หากคุณต้องการรีโหลด / รีเฟรชเอนทิตีทั้งหมดที่คุณโหลด:
หากคุณกำลังใช้ Entity Framework 4.1+ (อาจเป็น EF5 หรือ EF 6) DbContext API:
public void RefreshAll()
{
foreach (var entity in ctx.ChangeTracker.Entries())
{
entity.Reload();
}
}
หากคุณกำลังใช้ entityFramework 4 (ObjectContext API):
public void RefreshAll()
{
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/