2010-05-26 85 views
2

可能重複進行選擇:
LINQ - Where not exists如何使用WHERE NOT EXISTS

我使用LINQ2SQL我想比較兩個表,並選擇缺少的所有行從一個表格(基於一列值)。

在標準SQL中我會寫爲:

SELECT 
FirstName, 
LastName, 
RefId, 
Email 
FROM 
Users_ActiveDirectory AS ADU 
WHERE 
NOT EXISTS 
(
SELECT 
U.RefId 
FROM 
Users AS U 
WHERE 
U.RefID = ADU.RefId 
) 

但是我不知道如何實現使用LINQ2SQL同樣的結果?

+0

我發現這個問題 - 但它似乎是標準的SQL,而不是LINQ查詢 – 2010-05-26 10:18:56

+0

看看http://stackoverflow.com/questions/899090/linq-where-不存在 – 2010-05-26 10:07:34

回答

0

的Linq有。任何()函數返回true,如果序列中包含任何這樣類似...

from ADU in Users_ActiveDirectory 
where !((from U in Users where U.RefID == ADU.RefId).Any()) 
select new 
{ 
    ADU.FirstName, 
    ADU.LastName, 
    ADU.RefId, 
    ADU.Email 
} 

沒有測試,不知道你是否需要額外的支架,或者如果你有做==錯誤,而不是...

+0

訣竅,好的! (雖然你的Any()語句中需要**選擇U **) – 2010-05-26 11:24:50