title: Using SetFetchMode
body: <p>Excuse my amateur nhibernate-ness but I am struggling with fetching in the below scenario.</p>
  
  <pre><code>var query = session.CreateCriteria&lt;Notification&gt;().SetFetchMode("Parameters", FetchMode.Select)
  .CreateAlias("Parameters", "p", JoinType.InnerJoin)
  .Add(Restrictions.Where&lt;Notification&gt;(x =&gt; x.Acknowledged == false));
  </code></pre>
  
  <p>[some code that builds an IList called npHashes]</p>
  
  <pre><code>query = query.Add(Restrictions.In("p.PairHash", npHashes)).AddOrder(new Order("DateCreated", false));
  </code></pre>
  
  <p>[enumerate it]</p>
  
  <p>Note that I am using SELECT as the prefetchmode... an option that apparently got left out of QueryOver... and LINQ... Also note the fetched table is the same table that i have joined on to to filter by.</p>
  
  <p>Executing that query results in this:</p>
  
  <pre><code>    SELECT
      this_.Id as Id14_1_,
      this_.Version as Version14_1_,
      this_.Url as Url14_1_,
      this_.DispatchType as Dispatch5_14_1_,
      this_.Acknowledged as Acknowle6_14_1_,
      this_.DateCreated as DateCrea7_14_1_,
      this_.NotificationType as Notifica2_14_1_,
      p1_.Id as Id15_0_,
      p1_.Version as Version15_0_,
      p1_.NotificationId as Notifica3_15_0_,
      p1_.Name as Name15_0_,
      p1_.Value as Value15_0_,
      p1_.PairHash as PairHash15_0_ 
  FROM
      Notification this_ 
  inner join
      NotificationParameter p1_ 
          on this_.Id=p1_.NotificationId 
  WHERE
      this_.Acknowledged = ?p0 
      and p1_.PairHash in (
          ?p1
      ) 
  ORDER BY
      this_.DateCreated desc;
  ?p0 = False [Type: Boolean (0)],
  ?p1 = 'V3zmXnv12B3AC26xeG10w+bas4U=' [Type: String (28)]
  </code></pre>
  
  <p>So the first issue is for some reason NotificationParameter columns are included in the select list... it appears to not be doing a select fetch. This is bad because a) i want a select fetch b) the fetch records are filtered. Fetching is not the same as joining (as a concept) and the filters on the joined data should not (in this case) be filtering what I fetch.</p>
  
  <p>Second issue of course is the SELECT fetch didn't happen. Instead on first accessing of the Parameters property of Notification they are lazily loaded :O</p>
  
  <p>Any help? Also if theres a way to do this using QueryOver i'd prefer that. I noticed that I could go .UnderlyingCriteria.SetFetchmode(....) however that had no effect on what was fetched.</p>