本文转自:
If you want to reload specific entities, with the DbContextApi, RX_DID_RX already gave you the answer.
If you want to reload / refresh all the entities you loaded:
If you are using Entity Framework 4.1+ (EF5, or EF 6 probably), DbContext API:
public void RefreshAll(){ foreach (var entity in ctx.ChangeTracker.Entries()) { entity.Reload(); }}
Use the method:
context.Refresh(RefreshMode.StoreWins, yourEntity);
or in alternative dispose your current context and create a new one.
context.Reload() was not working for me in MVC 4, EF 5 so I did this.
context.Entry(entity).State = EntityState.Detached;entity = context.Find(entity.ID); http://stackoverflow.com/questions/15828811/entity-framework-caching-issue
| If you know that changes happened outside of EF and want to refresh your ctxt for a specific entity, you can call datamodel.Refresh(RefreshMode.StoreWins, orders); If this seems like it will be a common occurance, you should disable object caching in your queries: SchoolBriefcaseEntities datamodel = new SchoolBriefcaseEntities();datamodel.tblCities.MergeOption = MergeOption.NoTracking; or for to turn off object level caching for specific Entity, Context.Set |