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を使用して、親従業員に基づいてすべての子従業員を取得するにはどうすればよいですか?

たとえば、従業員E1の子レコードが必要な場合は、E3、E4、E5、E6を取得する必要があります。

前もって感謝します...

4

1 に答える 1

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;
}
于 2013-02-19T13:35:53.570 に答える