如何使用WHERE NOT EXISTS执行选择

时间:2010-05-26 09:52:59

标签: sql linq-to-sql

  

可能重复:
  LINQ - 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实现相同的结果?

1 个答案:

答案 0 :(得分:0)

Linq有一个.Any()函数,如果序列包含类似......

之类的东西,则返回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 
}

未经测试,不确定您是否需要额外的括号,或者您是否需要做== false而不是......