LINQ到实体加入表返回

时间:2012-11-08 02:52:18

标签: entity-framework join linq-to-entities

我有两张表如下:

Departments:
   DeptID   (PK)
   DeptName
   ...

Employees: 
   EmpID    (PK)
   DeptID   (FK)
   EmpName
   ...

我使用LINQ查询如下:

public List<Employee> GetEmployee(int deptID)
{
    var query = from e in mdc.Employees
                join d in mdc.Departments on e.DeptID equals d.DeptID
                where e.DeptID == deptID
                select new { e.EmpID, e.EmpName, d.DeptName };

    return query.ToList();
}

现在我的问题是这个。我想选择字段EmpID,EmpName和DeptName。 但是我的回报类型是什么?这个返回一个错误,因为此查询返回GenericList而不是List<Employee>

1 个答案:

答案 0 :(得分:1)

您需要创建另一个具有所需属性的类,

public class NewType{
public EmpID{get;set;}
//other fields here
}  

然后选择,

public List<NewType> GetEmployee(int deptID)
{
    var query = from e in mdc.Employees
                join d in mdc.Departments on e.DeptID equals d.DeptID
                where e.DeptID == deptID
                select new NewType{ e.EmpID, e.EmpName, d.DeptName };

    return query.ToList();
}