Ich habe mit Entity Framework mein Datenbankschema erstellt und meinen Code generiert. Ich habe eine Tabelle namens Employee mit untergeordneten Datensätzen in einer DaysOff-Tabelle. DaysOff hat einen Fremdschlüssel für Employee, und in meinem Modell gibt es eine Zuordnung von 1 zu *. Ich führte eine LINQ-Abfrage für die Employee-Tabelle aus und erwartete, dass mein Domain.Employee-Objekt mit DaysOff gefüllt würde, aber DaysOff null war. Wenn ich im Objekt einen Drilldown ausführe, sehe ich "employee.DaysOff.Count hat eine Ausnahme vom Typ System.ObjectDisposedException ausgelöst". Denke ich falsch zu denken, dass die Kinderaufzeichnungen bevölkert werden? Wie würde ich das tun? Hier ist die Methode, die ich anrufe, um meinen Mitarbeiter zu bekommen:
%Vor%BEARBEITEN: Eine Kombination aus der unten angenommenen Antwort und den Kommentaren (alle abgestimmt) hat mir geholfen, dies zu lösen (yay!):
%Vor%Denke ich falsch zu denken, dass die Child-Datensätze gefüllt werden?
Ich bin raten , dass es sein kann, dass die DaysOff
träge bevölkert ist, aber zu diesem Zeitpunkt wurde EmployeeEntities
entfernt. Vielleicht möchten Sie etwas wie:
Beachten Sie auch, dass Ihr Code in der using
-Anweisung einfacher wie folgt geschrieben wäre:
Bearbeiten
Der obige Code ist nicht korrekt. Include
muss für ObjectQuery<T>
oder IQueryable<T>
verwendet werden und kann nicht auf ObjectContext
/ DbContext
angewendet werden. Korrekte Verwendung ist:
hier ist Post spricht über das Laden von Kind Entität
Verwendung von DbContext in EF 4.1 Teil 6: Verwandte Entitäten laden
Engagierte Entitäten laden
%Vor%Explizites Laden verknüpfter Entitäten
%Vor%Tags und Links c# entity-framework linq