最佳答案
我试图在 LINQ 中实现一个查询,它使用 ON 子句中具有多个条件的左外部连接。
我将使用以下两个表 工程项目(ProjectID,ProjectName)和 任务(TaskID,ProjectID,TaskName,Completed)的示例。我希望看到所有项目及其各自任务的完整列表,但仅限于那些已完成的任务。
我不能使用 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 }
如何在 on 子句中添加 && t2.Completed == true
?
我似乎找不到任何 LINQ 文档关于如何做到这一点。