title: LINQ - Select all in parent-child hierarchy
body: <p>I was wondering if there is a neat way do to this, that DOESN'T use any kind of while loop or similar, preferably that would run against Linq to Entities as a single SQL round-trip, and also against Linq To Objects.</p>
  
  <p>I have an entity - <code>Forum</code> - that has a parent-child relationship going on. That is, a <code>Forum</code> may (or in the case of the top level, may not) have a <code>ParentForum</code>, and may have many <code>ChildForums</code>. A <code>Forum</code> then contains many <code>Posts</code>.</p>
  
  <p>What I'm after here is a way to get all the <code>Posts</code> from a tree of <code>Forums</code> - i.e. the <code>Forum</code> in question, and all it's children, grandchildren etc. I don't know in advance how many sub-levels the <code>Forum</code> in question may have.</p>
  
  <p>(Note - I know this example isn't necessarily a valuable use case, but the Forum object model one is one that is familiar to most people, and so serves as a generic and accessible premise rather than my actual domain model.)</p>