title: LINQ Flatten Circular Reference
body: <p>I have a user object:</p>
  
  <pre><code>class user
  {
    int userId {get; set;}
    string name {get; set}
    int supervisorId {get; set}
  }
  </code></pre>
  
  <p>Each supervisorId is also a useId in the users table.  I'm trying to find a reasonable way to build out a hierarchy of a user's supervisors, all the way to the top person.  So selecting a user's supervisorID, then that supervisor's supervisorId, etc.  I'm working with an ever more ugly growing for loop now but hoping someone has something a little more elegant.</p>