2012-11-08 65 views
0

我有两个表如下:LINQ到实体连接表返回

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

你需要创建一个这样的要求的性能另一个类,

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(); 
}