如何解决如何在Nhibernate查询中选择集合?
我在调整查询中的集合时遇到问题。
我已将问题分为三个阶段。
第一阶段:-我正在使用以下查询获取所有帐户。
var allAccountsQuery = session.QueryOver(() => accountAlias)
.Where(account => !account.IsDeleted)
.Inner.JoinAlias(account => account.Owner,() => ownerAlias,o => o.Id == owner.Id)
.TransformUsing(new DistinctRootEntityResultTransformer());
第二阶段:-我正在将余额提取到我的帐户中。
AccountBalance accountBalance = null;
allAccountsQuery = allAccountsQuery
.Left.JoinAlias(account => account.AccountBalances,() => accountBalance,balance => !balance.IsDeleted)
.TransformUsing(new DistinctRootEntityResultTransformer());
第3阶段:之后,我尝试使用投影条件操作根据以下条件填充一些属性。
allAccountsQuery = allAccountsQuery
.SelectList(list => list
.Select(() => accountAlias.Id).WithAlias(() => accountAlias.Id)
.Select(() => accountAlias.AccountNumber).WithAlias(() => accountAlias.AccountNumber)
.Select(() => accountAlias.CoreAccountId).WithAlias(() => accountAlias.CoreAccountId)
.Select(() => accountAlias.SourceId).WithAlias(() => accountAlias.SourceId)
.Select(() => accountAlias.Changed).WithAlias(() => accountAlias.Changed)
.Select(
Projections.Conditional(
Subqueries.Exists(
QueryOver
.Of(() => history)
.Where(() => history.Account.Id == accountAlias.Id && history.ValidFrom <= dateToCheck && history.ValidTo >= dateToCheck)
.Select(x => x.Account.Id)
.DetachedCriteria) // this is the SUB-SELECT,Projections.SubQuery(
QueryOver
.Of(() => history)
.Where(() => history.Account.Id == accountAlias.Id)
.Select(x => x.AccountDescription)
.Take(1)
),Projections.Property<Account>(p => p.Description)
)
)
.WithAlias(() => accountAlias.Description)
)
.TransformUsing(new DeepTransformer<Account>());
问题:现在,我想放下我从第二阶段获取的收藏集。经过一些研究,我发现下面的内容。让我知道正确的看法。
https://github.com/nhibernate/nhibernate-core/issues/945
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。