我有以下类结构。
Company > List(of Departments) > List(of Employees)
我想查询公司,以确定它是否具有以下名称的部门以及该部门中具有以下ID的员工!
我怎么能查询这个。我有他希望返回一个部门的代码的方式,所以我做了
If Company.Where(function(d) d.Name = 'ABC').First.Where(function(e) e.EmployeeId = 1).Count > 0
但这会出错
if d.Name = 'ABC'
返回0条记录(我希望它返回1或0条记录!)
是否可以在一个linq
声明中执行此操作?
答案 0 :(得分:4)
假设一家公司有多个部门而一个部门有多个员工 - 那么你可以这样做..抱歉我没有使用vb语法:
DB.Departments.Where(d=>d.Name=="ABC").SelectMany(d=>d.Employees).Any(e=>e.EmployeeId == 7)
这将告诉您特定员工是否在任何公司的特定部门名称中。
答案 1 :(得分:2)
var employeeExists = (from company in companies
where company.Name = expectedCompanyName
from department in company.Departments
from employee in department.Employees
where employee.Id == expectedEmployeeId
select employee.Id).Any()