我使用了一个EmployeeID列表,我想使用LINQ从EmployeeID列表中存在员工id的员工表中找到一个员工。
我尝试了这个查询,但它给了我一个错误。
objAbs.LstAbscon = (from p in db.Employees
where p.Isdeleted != true && p.CNO == iCNO && p.EmpId.Equals(empIdLst.Any())
where p.Isdeleted != true && p.CNO == iCNO && empIdLst.All(l => l.EmpId.Equals(p.EmpId))
where p.Isdeleted != true && p.CNO == iCNO && empIdLst.Contains(p.EmpId)
select new AbsconModel
{
EmpId = p.EmpId,
PCODE = p.PCODE,
PNAME = p.PNAME,
Department = p.Dept,
Designation = p.Desig,
}).ToList();
在查询中,我添加了三个where子句。
请提出建议以更正我的疑问。
"empIdLst"是员工ID列表
您应该只使用此
p.Isdeleted != true && p.CNO == iCNO && empIdLst.Contains( p.EmpId )
empIdLst.Any()
将返回true
或false
,这取决于它是否为空。
看起来你只需要第三个:
where p.Isdeleted != true && p.CNO == iCNO && empIdLst.Contains(p.EmpId)
在这种情况下,它会返回什么?