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