Ich habe eine LINQ-Abfrage, die ein einzelnes Objekt zurückgibt - der Kontext ist ein Object kein DbContextEntity Framework Object Context
var q = from c in context.x //this has various includes but this just an example
where c.Id == xId
select c;
X x = q.FirstOrDefault();
ich dann eine Sammlung an diese Befestigung durch die Verwendung der folgenden
ObjectQuery<Z> y = x.Y.CreateSourceQuery().Include("1").Include("2");
x.Y.Attach(y);
Es gibt jedoch ein Problem, bei dem ich versuche, das geladene Objekt zu aktualisieren. Wenn Elemente in der Quellabfrage entfernt wurden, ändern sie sich bei der Aktualisierung nicht. Ich glaube, dass der Kontext jedes Objekt nur einmal lädt und zwischenspeichert aber ich muss den c behalten Ontext geöffnet, da ich zurück in die Datenbank speichern muss.
Ich habe versucht, die folgenden aufzufrischen mit:
context.Refresh(RefreshMode.StoreWins, y);
oder das Auslösen einer Auslösung eines Refresh durch Setzen des Unternehmens Zustand geändert: Sie
context.ObjectStateManager.ChangeObjectState(pb, EntityState.Modified);
Ich verstehe, dass mit einem DB-Kontext kann Aktualisieren Sie die Entität, die eine Datenbankaktualisierung erzwingt, meine Frage wäre, dass es möglich ist, die Aktualisierung mit ObjectContext zu erzwingen.
Mit DbContext konnten wir die gewünschten Ergebnisse erzielen, indem wir alles auffrischen, wie Sie sich vorstellen können, dass dies sehr langsam war.
var refreshableObjects = context.ChangeTracker.Entries().Select(e => e.Entity).ToList();
foreach (var obj in refreshableObjects)
{
((IObjectContextAdapter)context).ObjectContext.ObjectStateManager.GetRelationshipManager(obj).GetAllRelatedEnds().Where(r => r.IsLoaded).ToList().ForEach(c => c.Load());
}
Haben Sie versucht das? 'context.Entry (y) .Reload();' – lokusking
objectcontext hat keine Eingabemethode http://stackoverflow.com/questions/11032683/objectcontext-does-not-contain-a-definition-for-entry-and -no-extension-metho – Chris
Du hast Recht. Ich schaue in ein paar Stunden, wenn ich Zugang zu meinem EF-Projekt habe. – lokusking