У меня довольно стандартная конфигурация с отношениями «многие ко многим» между департаментами и сотрудниками.
Departments
---------------
DepartmentID
Name
Employees
---------------
EmployeeID
Name
DepartmentEmployees
-------------------
DepartmentID
EmployeeID
Учитывая данный департамент, я хотел бы вернуть список сотрудников для этого департамента.Вот что у меня есть:
public partial class Department
{
public List<Employee> GetEmployees()
{
int[] employeeIds = MyDBDataContext.DepartmentEmployees.
Where(de => de.DepartmentID == this.DepartmentID).
Select(de => de.EmployeeID.Value).ToArray();
List<Employee> employees = (from x in MyDBDataContext.Employees
where employeeIds.Contains(x.EmployeeID)
select x).ToList();
return employees;
}
}
Это отлично работает, но я не люблю делать два вызова базы данных.Есть ли другой способ сделать это с помощью LINQ?