title: Add additional conditional to JOIN and not WHERE clause
body: <p>I've been trying to accomplish this for a few days using QueryOver without much progress.  I can't seem to find a way to add a conditional on a left outer join on a one to many relationship.  I have Question and Answer entities, where a Question has multiple Answers (it's for a Survey, where each response is another Answer to the same Question).  I'm trying to filter all the Answers based on some criteria (for example, all answers with a Score &lt; 3), but anytime I attempt to add the conditional, it gets added to the WHERE clause and not on the JOIN.</p>
  
  <h1>Example entities</h1>
  
  <p>Question:</p>
  
  <pre><code>public class Question : Entity&lt;int&gt;
  {
      public virtual IEnumerable&lt;Answer&gt; Answers { get; set; }
      ...
  }
  </code></pre>
  
  <p>Answer:</p>
  
  <pre><code>public class Answer : Entity&lt;int&gt;
  {
      public virtual Question Question { get; set; }
      public virtual int Score { get; set; }
      ...
  }
  </code></pre>
  
  <h1>Queries</h1>
  
  <p>I've tried many different variants of using JoinQueryOver...</p>
  
  <pre><code>session.QueryOver&lt;Question&gt;()
      .Where(q =&gt; q.Survey.Id == id)
      .Left.JoinQueryOver(q =&gt; q.Answers)
      .Where(a =&gt; a.Score &lt; 3)
  </code></pre>
  
  <p>...and JoinAlias and using the alias in the Where</p>
  
  <pre><code>session.QueryOver&lt;Question&gt;(() =&gt; questionAlias)
      .Where(q =&gt; q.Survey.Id == id)
      .Left.JoinAlias(() =&gt; questionAlias.Answers, () =&gt; answerAlias)
      .Where(() =&gt; answerAlias.Score &gt; 3);
  </code></pre>
  
  <p>I always get a query like this:</p>
  
  <pre><code>SELECT * FROM QUESTION q
  left outer join ANSWER a on q.Id=a.Question_id
  WHERE q.Survey_id = 1 and a.Score &lt; 3
  </code></pre>
  
  <p>but I need:</p>
  
  <pre><code>SELECT * FROM QUESTION q
  left outer join ANSWER a on q.Id=a.Question_id and a.Score &lt; 3
  WHERE q.Survey_id = 1
  </code></pre>