Мне было интересно, есть ли изящный способ сделать это, чтобы не использовать циклы while и т. П., Предпочтительно, чтобы они работали с Linq to Entities как единым циклом SQL, а также с Linq To Объекты.
У меня есть сущность - Forum
- с которой происходят отношения родитель-ребенок. То есть Forum
может (или в случае верхнего уровня может не иметь) иметь ParentForum
и может иметь много ChildForums
. A Forum
тогда содержит много Posts
.
То, что я здесь ищу, - это способ получить все Posts
из дерева Forums
- то есть Forum
, о котором идет речь, и всех его детей, внуков и т. Д. Я не знаю заранее сколько подуровней может иметь рассматриваемый Forum
.
(Примечание. Я знаю, что этот пример не обязательно является ценным вариантом использования, но одна объектная модель Форума знакома большинству людей и поэтому служит общей и доступной предпосылкой, а не моей реальной моделью предметной области. )