Próbuję zaimplementować zapytanie w LINQ, które używa lewego sprzężenia zewnętrznego z wieloma warunkami w klauzuli ON.
Posłużę się przykładem następujących dwóch tabel Project (ProjectID, ProjectName) i Task (TaskID, ProjectID, TaskName, Completed). Chcę zobaczyć pełną listę wszystkich projektów z przypisanymi im zadaniami, ale tylko te zadania, które zostały zakończone.
Nie mogę użyć filtru dla, Completed == true
ponieważ spowoduje to odfiltrowanie projektów, które nie mają ukończonych zadań. Zamiast tego chcę dodać Completed == true
klauzulę ON w złączeniu, aby wyświetlić pełną listę projektów, ale zostaną wyświetlone tylko ukończone zadania. W projektach bez ukończonych zadań zostanie wyświetlony pojedynczy wiersz z wartością null dla zadania.
Oto podstawa zapytania.
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 }
Jak dodać && t2.Completed == true
do klauzuli on?
Nie mogę znaleźć żadnej dokumentacji LINQ, jak to zrobić.