Linq 如何递归地选择父元素下的所有子元素?
假设我们有一张桌子:Linq 如何递归地选择父元素下的所有子元素?,linq,linq-to-sql,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
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
我还需要让这个查询递归地深入到所需的深度。例如,也许约翰有人为他工作,所以他们也会被包括在结果中
我曾考虑使用SelectMany,但不确定这是否可行:
db.Worker.SelectMany(w => w.ID).Where(w => w.ID == 4).ToList();
我使用的是LINQtoSQL,查询只能处理这一个表 您将如何构建此查询
编辑:下面是模型类的外观
WORKER
ID int
Name string
ManagerID int
如果您想在SQL中执行此操作,则必须手动执行一些递归SQL。我们可以看到模型类吗?当然可以,只是添加了一个类可能的基本概念。如果你需要更多的细节,请告诉我有什么帮助。谢谢我在找你的ef模范班工人