LINQ komplexe Abfrage Navigationseigenschaft

9

Ich habe hier ein Problem mit dem Abrufen von Daten aus meiner Datenbank mit LINQ

Ich habe zwei Tabellen Team und TeamMember , die durch 1-N Beziehung verbunden sind. Ich benutze Entity Framework und ich habe eine Entität für jede der Tabellen mit einer Eigenschaft für jede Spalte. Auch in der Team-Entität gibt es eine TeamMember Navigationseigenschaft als Ergebnis dieser Beziehung.

Ich möchte eine Anfrage stellen, wo ich alle meine Teams mit ihren Teammitgliedern erreichen kann.

%Vor%

Das funktioniert gut. Ich erhalte eine Sammlung von Team-Entitäten mit der Eigenschaft Team.TeamMember , die mit den Daten des Mitglieds jedes Teams gefüllt ist.

Das Problem liegt vor, wenn ich eine komplexere Abfrage wie das Filtern der Abfrage für die TeamMembers durchführen möchte.

Zum Beispiel haben beide Tabellen eine Spalte EndDateTime . Wenn ich alle Team- und Teammitglieder bekommen möchte, die nicht beendet sind (ihr Enddatum ist nicht null), weiß ich nicht, wie ich es machen soll.

Mit dieser Abfrage filtere ich nur die Teams, aber nicht die Teammitglieder.

%Vor%

Irgendeine Idee?

Ich "löse" es irgendwie, indem ich den Filter des Mitglieds nach der Abfrage zur Sammlung mache. So:

%Vor%

Aber ich denke nicht, dass dies eine gute Lösung ist.

    
Asier Barrenetxea 06.10.2011, 15:06
quelle

2 Antworten

1

Ich habe darauf hingewiesen, dass dies ein Duplikat ist. Wenn Sie die Antworten zusammenfassen, müssen Sie lediglich die Where -Klausel als Teil der Select -Anweisung in das untergeordnete Element einfügen (indem Sie sie als Teil eines anonymen Typs verwenden), die Abfrage auflisten und dann die gewünschten Objekte abrufen.

Da Sie die gewünschte TeamMembers in einer anderen Eigenschaft ausgewählt haben, werden sie aus der Datenbank abgerufen und in Ihrem Objektdiagramm erstellt.

%Vor%     
Kirk Broadhurst 06.10.2011 15:21
quelle
0

Das sollte funktionieren:

%Vor%

Dies gibt eine Liste von anonymen Objekten zurück.

    
mendel 01.01.2013 23:09
quelle

Tags und Links