Ich versuche, eine Abfrage in LINQ zu implementieren, die einen linken äußeren Join mit mehreren Bedingungen in der ON-Klausel verwendet.
Ich verwende das Beispiel der folgenden beiden Tabellen Project (ProjectID, ProjectName) und Task (TaskID, ProjectID, TaskName, Completed). Ich möchte die vollständige Liste aller Projekte mit ihren jeweiligen Aufgaben sehen, aber nur die Aufgaben, die abgeschlossen sind.
Ich kann keinen Filter für verwenden, Completed == true
da dadurch alle Projekte herausgefiltert werden, für die keine Aufgaben abgeschlossen wurden. Stattdessen möchte ich Completed == true
die ON-Klausel des Joins hinzufügen , damit die vollständige Liste der Projekte angezeigt wird, aber nur abgeschlossene Aufgaben angezeigt werden. Projekte ohne abgeschlossene Aufgaben zeigen eine einzelne Zeile mit einem Nullwert für Aufgabe an.
Hier ist die Grundlage der Abfrage.
from t1 in Projects
join t2 in Tasks
on new { t1.ProjectID} equals new { t2.ProjectID } into j1
from j2 in j1.DefaultIfEmpty()
select new { t1.ProjectName, t2.TaskName }
Wie füge ich && t2.Completed == true
der on-Klausel hinzu?
Ich kann anscheinend keine LINQ-Dokumentation dazu finden.