ich alle Elemente meiner DbContext
ohne es neu aktualisieren möchten, habe ich versucht, die folgenden und keiner von ihnen Sinn machen:Wie zu Aktualisieren DbContext
var context = ((IObjectContextAdapter)myDbContext).ObjectContext;
var refreshableObjects = (from entry in context.ObjectStateManager.GetObjectStateEntries(
EntityState.Added
| EntityState.Deleted
| EntityState.Modified
| EntityState.Unchanged)
where entry.EntityKey != null
select entry.Entity);
context.Refresh(RefreshMode.StoreWins, refreshableObjects);
//.......................................................................
foreach (var entry in this.Orm.ChangeTracker.Entries())
{
entry.State = EntityState.Unchanged;
}
this.Orm.ChangeTracker.DetectChanges();
Und das einzige, das erfrischt meine DbContext
:
foreach (var i in this.Orm.ChangeTracker.Entries())
i.Reload();
Aber es ist zu langsam. Kannst du mir helfen, den richtigen Weg zu wählen?
Haben Sie versucht, context.Refresh (Refreshmode, Entity) und im Debugger und SQL-Monitor sehen, ob es wirklich aktualisiert wird? – yonexbat
@yonexbat: Ich habe die Daten in sql manuell geändert und 'context.Refresh (RefreshMode, Entity)' aufgerufen, aber keine der Änderungen aktualisiert, und das gleiche Szenario mit 'i.Reload();' durchgeführt und alle Änderungen in my aktualisiert 'DbContext'. – Mohsen