2013-02-19 66 views
1
ID Name Designation PID 
1 E1 D1   0 
2 E2 D2   0 
3 E3 D3   1 
4 E4 D3   1 
5 E5 D4   3 
6 E6 D4   3 
7 E7 D4   2 
8 E8 D4   2 

我們如何根據使用LINQ的父級員工獲取所有子員工?使用LINQ獲取層級數據

對於例如,如果我們想爲員工E1子記錄我們應該得到E3,E4,E5,E6

在此先感謝...

回答

0

使用一個單一的LINQ你不能做到這一點查詢。但是你可以使用遞歸函數像水木清華做到這一點:

IList<Employee> GetAllChildren(IList<Employee> employees, int pid) 
{ 
    var children = employees.Where (e => e.PID == pid).ToList(); 
    children.AddRange (children.SelectMany (e => GetAllChildren (employees, e.ID)).ToList()); 

    return children; 
} 
+0

謝謝你洙多的解決方案....這是給確切的結果.. – user2087064 2013-02-20 06:50:44

+0

我怎麼能這個數據鏈接到一個樹視圖.. – user2087064 2013-02-20 07:05:50