Я пытаюсь реализовать запрос в 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 о том, как это сделать.