2

私は次のクラス構造を持っています。

Company > List(of Departments) > List(of Employees)

会社に次の名前の部門があり、その部門に次のIDの従業員がいるかどうかを確認したいと思います。

どうすればこれを照会できますか。私がコードを持っている方法は、1つの部門を返すことを期待しているので、それを実行しています

If Company.Where(function(d) d.Name = 'ABC').First.Where(function(e) e.EmployeeId = 1).Count > 0 

しかし、これはエラー if d.Name = 'ABC'で0レコードを返します(1または0レコードを返すことを期待しています!)

linq1つのステートメントでこれを行うことは可能ですか?

4

2 に答える 2

4

会社に複数の部門があり、部門に複数の従業員がいると仮定すると、これを行うことができます。申し訳ありませんが、vb構文を使用していません。

DB.Departments.Where(d=>d.Name=="ABC").SelectMany(d=>d.Employees).Any(e=>e.EmployeeId == 7)

これにより、特定の従業員がいずれかの会社の特定の部門名に属しているかどうかがわかります。

于 2012-04-17T15:47:34.353 に答える
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()
于 2012-04-17T15:59:36.640 に答える