2011-12-29 120 views
0

我有兩個不同的實體屬性類的列表,獲得具有兩個不同的表

class Department 
{ 
    int DepID; 
    string DepName; 
} 

class Emp 
{ 
    int Empid; 
    string Empname; 
    int Empage; 
    int EmpDep; //id of department 
} 

,我使用Linq中的聯接得到的Emp名單與DepName,我想直接分配這個值給datagrid。

所以我的問題是如何獲得數據轉換爲列表和什麼將是這個列表的對象類型。

謝謝

回答

1

喜歡的東西

employees.Join(departments, e => e.EmpDep, d => d.DepId, 
    (e,d) => new EmpView { EmpName = e.EmpName, DepName = d.DepName }).ToList() 

,我使用類型EmpView綁定到網格。 (這樣,你可以創建一個產生EmpViews的方法,以及另一個方法 - 或組件 - 執行數據綁定,分離關注點)。

+0

做了一個小修改,因爲我把匿名類型的語法和對象初始值設定項混合在一起。 – 2012-01-02 10:40:36

2

結果類型將是一個匿名類型。我不認爲你可以直接將結果列表轉換爲特定類型的列表,除非你明確定義了該類型。

因此,如果您要在查詢結束處放置.ToList(),您將在var類型對象中獲得anooymous類型的列表。

爲什麼你需要這裏的強類型?只需將數據網格項目源等於列出你從LINQ

得到
+0

感謝哈里斯,但有什麼辦法我可以得到清單中的對象包含這兩個類的屬性的列表? – 2011-12-29 11:13:18

+0

是的,你可以通過在LINQ查詢中使用select語句。類似這樣的'select new {instance1.Property1,instance2.Property2等等;' – 2011-12-29 12:02:27

相關問題