检查一行是否在列表中,并将其与该表中的其他行进行比较
本文关键字:比较 其他 一行 是否 检查 列表 | 更新日期: 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")