2017-06-20 73 views
0

我想加入多个条件。问题在于它是“等于”和“不等于”的混合。这个previous answer只适用于如果你想加入'等于'。Linq:加入多种条件

from p1 in context.Set<PersonList>() 
join p2 in context.Set<PersonList>() 
on p1.Email equals p2.Email && p1.PersonID != p2.PersonID 
+0

如何提供一些示例代码,你试过吗? – NetMage

+0

编辑:添加示例。 – Wouter

回答

0

只需使用where捕捉额外条件:

from p1 in context.Set<PersonList>() 
join p2 in context.Set<PersonList>() 
on p1.Email equals p2.Email into p2j 
from p2 in p2j.DefaultIfEmpty() 
where p2 != null && p1.PersonID != p2.PersonID 
+0

确实如此,但您无法对其进行外部连接。 – Wouter

+0

你的例子不是外连接。你想要一个左外还是右外连接? – NetMage

+0

左外连接。 – Wouter