如何递归地包含C#EF树属性的所有路径

如何递归地包含C#EF树属性的所有路径,c#,entity-framework,recursion,properties,include,C#,Entity Framework,Recursion,Properties,Include,我正在尝试优化这里的一些代码,甚至使其更好,因为目前我在entity framework属性树中只达到了8º级别的子级 我正在做以下工作: var categories = CategoryRepository.Query(cat => cat.CategoryParent == null). Include(firstLevel => firstLevel.CategoryChilds.

我正在尝试优化这里的一些代码,甚至使其更好,因为目前我在entity framework属性树中只达到了8º级别的子级

我正在做以下工作:

var categories = CategoryRepository.Query(cat => cat.CategoryParent == null).
                            Include(firstLevel => firstLevel.CategoryChilds.
                                                Select(secondLevel => secondLevel.CategoryChilds.
                                                        Select(thirdLevel => thirdLevel.CategoryChilds.
                                                            Select(forthLevel => forthLevel.CategoryChilds.
                                                                Select(fifthLevel => fifthLevel.CategoryChilds.
                                                                        Select(sixthLevel => sixthLevel.CategoryChilds.
                                                                                Select(seventhLevel => seventhLevel.CategoryChilds))))))).Select().ToList();
正如你可能知道的,这是超杀伤力! 除此之外,我刚刚到达子树的一个特定级别,我想深入一点,直到我找不到更多的子树,是否可以使用递归

多谢各位!
祝你今天愉快

请看这是否有帮助,我认为这基本上与。因此
var categories=CategoryRepository.Query().AsEnumerable().Where(cat=>cat.CategoryParent==null).ToList()应该可以做到这一点。唯一的要求是启用跟踪功能(即不使用
AsNoTracking()
)!我会检查他们并选择一个,也许你可以写你自己的答案,我接受?谢谢;)请看这是否有帮助,我认为这基本上与。因此
var categories=CategoryRepository.Query().AsEnumerable().Where(cat=>cat.CategoryParent==null).ToList()应该可以做到这一点。唯一的要求是启用跟踪功能(即不使用
AsNoTracking()
)!我会检查他们并选择一个,也许你可以写你自己的答案,我接受?谢谢;)