title: Queryover with restriction on different class than the return class
body: <p>For my current project I'm learning NHibernate and I have trouble translating the below query</p>
  
  <pre><code>select person.Firstname, person.Lastname
  from Person
      inner join Contract         on contract.PersonId =      person.Id
      inner join Budget           on budget.ContractId =      contract.Id
      inner join Choice           on choice.BudgetId =        budget.Id
      inner join ChosenBenefit    on ChosenBenefit.ChoiceId = choice.Id
  where ChosenBenefit.BenefitImplementationId = 77
  </code></pre>
  
  <p>I thought the below would do the trick, but I get a nullreference with a stacktrace I can't make head or tails from.</p>
  
  <pre><code>Choice choice = null;
  Budget budget = null;
  Contract contract = null;
  Person person = null;
  
  var peopleThatChose = Session.QueryOver&lt;ChosenBenefit&gt;()
              .JoinAlias(chosenBenefit =&gt; chosenBenefit.Choice, () =&gt; choice)
              .JoinAlias(chosenBenefit =&gt; choice.Budget, () =&gt; budget)
              .JoinAlias(chosenBenefit =&gt; budget.Contract, () =&gt; contract)
              .JoinAlias(chosenBenefit =&gt; contract.Person, () =&gt; person)
          .Where(chosenBenefit =&gt; chosenBenefit.BenefitImplementation.Id == 77)
          .Select(benefit =&gt; person);
  </code></pre>
  
  <p>From all the examples everywhere, it seams I'm supposed to <code>QueryOver&lt;Person&gt;</code>, but then I can't work my way down to where I want to put my restriction.</p>
  
  <p>What am I missing?</p>