LINQ加入多个或条件

时间:2017-08-22 09:57:50

标签: c# linq join

我的问题大多类似于这个问题LINQ Join with Multiple Conditions in On Clause和大多数其他类似的问题,要么谈论具有专门用于映射相应条件的属性,要么在没有连接的情况下编写查询

from t1 in Projects
from t2 in Tasks.Where(x => t1.ProjectID == x.ProjectID && x.Completed == true)
                .DefaultIfEmpty()
select new { t1.ProjectName, t2.TaskName }

假设我选择第一种写作方式,即

on new { t1.ProjectID, SecondProperty = true } equals 
   new { t2.ProjectID, SecondProperty = t2.Completed } into j1

转换为AND(&&)。我想在连接形式中使用OR(||)(第二种写作方式)。

提前致谢。

1 个答案:

答案 0 :(得分:1)

如果您想通过ProjectID执行加入,然后||上有SecondProperty,那么您必须加入一个字段并添加where子句:

from t1 in Projects
join t2 in Tasks on t1.ProjectID equals t2.ProjectID
where t1.SecondProperty || t1.SecondProperty == t2.Completed
select new { t1, t2 }