【问题标题】:How to perform a select using a WHERE NOT EXISTS [duplicate]如何使用 WHERE NOT EXISTS [重复] 执行选择
【发布时间】:2011-02-24 02:31:45
【问题描述】:

可能重复:
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 获得相同的结果?

【问题讨论】:

标签: sql linq-to-sql


【解决方案1】:

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...

【讨论】:

  • 成功了,不错! (尽管您的 Any() 语句中需要 select U
猜你喜欢
  • 2012-02-27
  • 2017-05-28
  • 2016-10-22
  • 1970-01-01
  • 2018-01-28
  • 1970-01-01
  • 1970-01-01
  • 2018-01-08
  • 1970-01-01
相关资源
最近更新 更多