2017-06-20 119 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