2012-11-08 124 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(); 
}