【发布时间】:2011-12-01 15:48:36
【问题描述】:
我正在尝试在 LINQ 中实现一个查询,该查询在 ON 子句中使用带有多个条件的左外连接。
我将使用以下两个表的示例Project (ProjectID, ProjectName) 和Task (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 文档。
【问题讨论】:
-
相关答案here使用Lambda语法