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
提前致谢...
答案 0 :(得分:0)
使用单个LINQ查询无法完成此操作。但你可以使用递归函数smth来做到这一点:
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;
}