在像下面这样的树中,每个项目只知道它的父 ID 和订单号,那么查询 Foo 的所有后代的好方法是什么?
- 1:富
- 2:儿童
- 3:孙子 1
- 4:孙子2
- 2:儿童
- 5:酒吧
- 6:巴兹
我可以得到这样的孩子
var q = from item in foos
where item.parentid == "Foo"
select item;
但是我怎样才能在一个查询中让所有后代达到任何深度呢?如果可能,我想避免使用多个查询进行递归。具体来说,我想获得所有可能级别的后代,不仅是子孙,还包括第 n 级子孙。我想我可以使用这种情况下的订单号和类似的查询
var q = from item in foos
where item.ordernumber > 1 && item.ordernumber < 5
select item;
但在这种情况下,我无法弄清楚如何获得5
,这意味着下一个非后代订单号。在这1
一点上总是已知的。
编辑:添加了被遗忘的细节,我希望它选择所有后代,而不仅仅是孩子和孙子孙女。