title: NHibernate query with FetchMany returns incorrect results
body: <p>I have two related entities: <strong>Job</strong> and <strong>Group</strong>, with a <strong>Many-To-Many</strong> relationship.</p>
  
  <p>I am performing a simple query to retrieve a specific Job and it's associated Group (through the <strong>GroupRecipients</strong> property):</p>
  
  <pre><code>var job = jobsRepo.Get()
                  .Where(j =&gt; j.Id == jobKey.Id)
                  .FirstOrDefault();
  
  var countA = job.GroupRecipients.Count;
  </code></pre>
  
  <p>The result of which is <strong>countA==2</strong>, which corresponds to the state in the database. </p>
  
  <p>The first weirdness occurs when I add a FetchMany:</p>
  
  <pre><code>var job = jobsRepo.Get()
                  .FetchMany(x =&gt; x.GroupRecipients)
                  .Where(j =&gt; j.Id == jobKey.Id)
                  .FirstOrDefault();
  
  var countB = job.GroupRecipients.Count;
  </code></pre>
  
  <p>This results in <strong>countB==1</strong>. Only one item appears in the job.GroupRecipients collection, which contradicts the state in the database. </p>
  
  <p>But it get's even more interesting. If I run the following in succession:</p>
  
  <pre><code>var job = jobsRepo.Get()
                  .Where(j =&gt; j.Id == jobKey.Id)
                  .FirstOrDefault();
  
  var countA = job.GroupRecipients.Count;
  
  var jobB = jobsRepo.Get()
                  .FetchMany(x =&gt; x.GroupRecipients)
                  .Where(j =&gt; j.Id == jobKey.Id)
                  .FirstOrDefault();
  
  var countB = jobB.GroupRecipients.Count;
  </code></pre>
  
  <p>Then I get <strong>countB==2</strong>, the expected result. Removing the line with countA again causes <strong>countB==1</strong>. </p>
  
  <p>Some more info:
  I perform the queries in a <strong>transaction</strong> in a <strong>stateless session</strong>.
  The version of NHibernate is <strong>3.3.1</strong></p>
  
  <p><strong>The two issues can thus be summarized as following:</strong></p>
  
  <ol>
  <li>FetchMany returns partial results</li>
  <li>One query is dependent on another query in an unexpected way. </li>
  </ol>
  
  <p><strong>Any explanation of this behavior is very welcome.</strong> </p>