我的问题大多类似于这个问题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(||)(第二种写作方式)。
提前致谢。
答案 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 }