Nhibernate Query和OrderBy导致在同一表上进行多个联接

|| 该模型中的两个核心实体是: 帐户 注册 这是帐户和注册之间的fluentNH映射:
.Override<Account>(m =>
 {
   m.References(x =>
     x.Registration).Cascade.All().Not.Nullable().Unique(); 
     // unidirectional one-to-one association, unique will not allow multiple nulls
 }
我们有一个查询来查找前10个(帐户,注册ID) 符合特定的过滤条件(根据帐户表示),并且 在注册时按两个字段排序 例:
 public class AccountRegistrationId
{
  public Guid AccountId { get; set; }
  public Guid RegistrationId { get; set; }
}
查询: 查询:
(from r in _session.Query<Account>() select r)
.OrderBy(a => a.Registration.PatientVisit)
.OrderBy(a => a.Registration.AccountNumber)
.Where(a=>a.Registration.Mrn == \"Mrn 1234\")
.Select(a =>  new AccountRegistrationId{     AccountId = a.Id,
                                                                RegistrationId = a.Registration.Id
                                                          }
).ToArray();
产生的sql在帐户和之间有4个外部联接 注册:
select   TOP ( 10 /* @p0 */ ) account0_.Id    as col_0_0_,
                     registrati3_.Id as col_1_0_
from     [Account] account0_
         left outer join [Registration] registrati1_
           on account0_.Registration_id = registrati1_.Id
         left outer join [Registration] registrati2_
           on account0_.Registration_id = registrati2_.Id
         left outer join [Registration] registrati3_
           on account0_.Registration_id = registrati3_.Id,
         [Registration] registrati4_
问题:多个左外连接与注册表 一键投影 一键加入Where条件 两次按OrderBy标准联接(每个订单按一个联接) 无论如何,在注册时有没有摆脱这些多重联接的方法?     
已邀请:

要回复问题请先登录注册