Nhibernate查询和OrderBy会在同一个表上导致多个联接
模型中的两个核心实体是:Nhibernate查询和OrderBy会在同一个表上导致多个联接,nhibernate,sql-order-by,outer-join,Nhibernate,Sql Order By,Outer Join,模型中的两个核心实体是: 帐目 登记 以下是帐户和注册之间的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
- 帐目
- 登记
.Override<Account>(m =>
{
m.References(x =>
x.Registration).Cascade.All().Not.Nullable().Unique();
// unidirectional one-to-one association, unique will not allow multiple nulls
}
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_
查询:
查询:
(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();
问题:多个左外与注册表连接
- 投影的一个连接
- 一个连接用于Where条件
- OrderBy条件的两个联接(每个OrderBy一个)
在注册时有没有办法消除这些多重连接 请使用{}进行代码格式化,以便您的问题可读…@Cristian Boanu:
{}
按钮并不是此处格式化代码的唯一方法。选择并按住Ctrl+K或四空格缩进也可以。我知道了,你找到答案了吗?
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_