如何以递归方式选择父元素下的所有子元素?

时间:2017-05-26 16:20:16

标签: linq linq-to-sql

假设我们有这张表:

WORKER  
NAME     ID    ManagerID  
------------------------
John     1     3  
Sally    2     3  
Paul     3     4  
Jane     4     5  
Jennifer 5     8  

约翰和莎莉为保罗工作,保罗为简工作。

对于linq查询,我想提供Jane的ID(4)并让它返回所有下属:

John     1     3  
Sally    2     3  
Paul     3     4

我还需要这个查询以递归方式尽可能深入。例如,也许John有人为他工作,所以他们也会被包括在结果中。

我正在考虑使用SelectMany,但我不确定这是否可行:

db.Worker.SelectMany(w => w.ID).Where(w => w.ID == 4).ToList();

我正在使用Linq-to-SQL,查询只能使用这一个表。

您将如何构建此查询?

编辑:这是模型类的样子

WORKER  
ID          int    
Name        string  
ManagerID   int  

0 个答案:

没有答案