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标准联接(每个订单按一个联接) 无论如何,在注册时有没有摆脱这些多重联接的方法?     

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...