Я намагаюся реалізувати запит у LINQ, який використовує ліве зовнішнє з'єднання з декількома умовами в реченні ON.
Я використаю приклад наступних двох таблиць Project (ProjectID, ProjectName) і Task (TaskID, ProjectID, TaskName, Completed). Я хочу бачити повний перелік усіх проектів з відповідними завданнями, але лише тих завдань, які виконані.
Я не можу використовувати фільтр, Completed == true
оскільки це відфільтрує всі проекти, які не мають виконаних завдань. Натомість я хочу додати Completed == true
до речення ON об’єднання, щоб відображався повний перелік проектів, але відображалися лише виконані завдання. Проекти без виконаних завдань відображатимуть один рядок із нульовим значенням для Завдання.
Ось основа запиту.
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 }
Як додати && t2.Completed == true
речення on?
Здається, я не можу знайти жодної документації LINQ про те, як це зробити.