我正在尝试在LINQ中实现查询,该查询在ON子句中使用具有多个条件的左外部联接。
我将使用以下两个表的示例Project(ProjectID,ProjectName)和Task(TaskID,ProjectID,TaskName,已完成)。我想查看所有项目的完整列表以及它们各自的任务,但只能看到已完成的那些任务。
我无法使用过滤器,Completed == true
因为这将过滤掉所有未完成任务的项目。相反,我想添加Completed == true
到联接的ON子句中,以便显示完整的项目列表,但仅显示已完成的任务。没有完成任务的项目将显示一行,且Task的值为空。
这是查询的基础。
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文档。