title: How to efficiently query with filter on children at different levels?
body: <p>I have 3 classes with one to many relationships</p>
  
  <pre><code>A has many B has many C
  </code></pre>
  
  <p>I want to load all of my data where either of two conditions are true:</p>
  
  <pre><code>B.someField is in a list of strings
  
  C.someOtherField is in that same list of strings
  </code></pre>
  
  <p>Sometimes B will be the match, sometimes C will be the match.  I need to load all matches, and load them for the full levels.</p>
  
  <p>In other words, if B.someField matches, I want to load that B, and its parent A, and all children C.</p>
  
  <p>Likewise, if C.someOtherField matches, I want to load its parent B and B's parent A.</p>
  
  <p>Is there an efficient way make this query?  How would you do it in nHibernate?</p>