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 回答