Как сделать рекурсивную загрузку с помощью Entity Framework?

У меня есть древовидная структура в БД с таблицей TreeNodes. в таблице есть nodeId, parentId и parameterId. в EF структура похожа на TreeNode.Children, где каждый дочерний элемент является TreeNode ... У меня также есть таблица Tree, содержащая id, name и rootNodeId.

В конце дня я хотел бы загрузить дерево в TreeView, но я не могу понять, как загрузить все это сразу. Я старался:

var trees = from t in context.TreeSet.Include("Root").Include("Root.Children").Include("Root.Children.Parameter")
        .Include("Root.Children.Children")
                        where t.ID == id
                        select t;

Это даст мне первые 2 поколения, но не больше. Как загрузить все дерево со всеми поколениями и дополнительными данными?

Ответы на вопрос(6)

Ваш ответ на вопрос