检查一行是否在列表中,并将其与该表中的其他行进行比较

本文关键字:比较 其他 一行 是否 检查 列表 | 更新日期: 2023-09-27 18:13:21

我正在使用ADO。. NET查询,以选择位置为x、y或z且在主管下工作的所有员工的员工id。

这是我正在处理的查询:

SELECT  e.Employee_OID
FROM    Employee e
WHERE   EXISTS (SELECT  1
                FROM    Employee e1 
                WHERE   e.Employee_OID = e1.Supervisor_OID
                AND     e1.Active_f = 'A')
AND     e.Location_OID IN (123, 22)
AND     e.Active_f = 'A'

我想把这个转换成LINQ表达式,我是LINQ和EF的初学者,有人能指导我把这个写进LINQ吗?

这是我目前为止写的:

var supervisors = (from employee in Employee
         where employee.location_OID == "???"  //I have ID's in a list here
         select employee.Employee_OID).Any();

检查一行是否在列表中,并将其与该表中的其他行进行比较

如果您使用的是EF 4.0或更高版本,您可以使用Contains()来检查项目是否在列表中:

where yourList.Contains(employee.location_OID)

exists子查询可以用Any()来完成:

where employee.Any(e1 => e.Employee_OID == e1.Supervisor_OID &&
                         e1.Active_f == "A")