LINQ untergeordnete Datensätze null

8

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%     
l15a 20.07.2012, 15:35
quelle

2 Antworten

10
  

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:

versuchen %Vor%

Beachten Sie auch, dass Ihr Code in der using -Anweisung einfacher wie folgt geschrieben wäre:

%Vor%

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:

%Vor%     
Jon Skeet 20.07.2012, 15:38
quelle
4

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%     
Pranay Rana 20.07.2012 15:40
quelle

Tags und Links