C# 正在寻找一种更好的方法来按ID获取项目集合
我有一个相当标准的设置,在部门和员工之间有一个多对多的关系C# 正在寻找一种更好的方法来按ID获取项目集合,c#,asp.net,linq,linq-to-sql,C#,Asp.net,Linq,Linq To Sql,我有一个相当标准的设置,在部门和员工之间有一个多对多的关系 Departments --------------- DepartmentID Name Employees --------------- EmployeeID Name DepartmentEmployees ------------------- DepartmentID EmployeeID 给定一个部门,我想返回该部门的员工名单。以下是我所拥有的: public partial class Department {
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;
}
}
公共部分课程部
{
公开名单
{
int[]employeeIds=MyDBDataContext.DepartmentEmployees。
其中(de=>de.DepartmentID==this.DepartmentID)。
选择(de=>de.EmployeeID.Value).ToArray();
列出employees=(从MyDBDataContext.employees中的x开始)
其中EmployeeID.Contains(x.EmployeeID)
选择x).ToList();
返回员工;
}
}
这很好,但我不喜欢做两个数据库调用。使用LINQ还有其他方法吗?为什么不使用连接
var employees = (from e in MyDBDataContext.Employees
join de in MyDBDataContext.DepartmentEmployees
on e.EmployeeID equals de.EmployeeID
where de.DepartmentID == this.DepartmentID
select e).ToList();
谢谢,我甚至不知道我能做到。我想我需要多读一些关于林克的书