Я пытаюсь реализовать запрос в LINQ, который использует левое внешнее соединение с несколькими условиями в предложении ON.
Я буду использовать пример следующих двух таблиц Проект (ProjectID, ProjectName) и Task (TaskID, ProjectID, TaskName, Завершено).Я хочу видеть полный список всех проектов с соответствующими задачами, но только те задачи, которые выполнены.
Я не могу использовать фильтр для 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 о том, как это сделать.