-3

我正在使用 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();
4

1 回答 1

4

如果您使用的是 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")
于 2013-05-13T13:04:31.960 回答