考虑以下实体:
Package Manifest Content
---------- ---------- ----------
Id PackageId Id
Name ContentId Name
Status
关系是多对多关系,其中包可以包含多个内容,而内容可以属于多个包。
我想要做的是,对于给定的Package.Id
,获取具有特定Content
的所有Status
的计数。
我的映射工作正常,但我无法弄清楚如何在不加载Content
的情况下实现Content
的条件计数。一种选择是在映射中使用ApplyChildFilter
并与ExtraLazyLoad
一起使用,但这意味着我必须为此创建一个专用属性。
有没有办法实现这一目标,而不是回到CreateSQLQuery
?
答案 0 :(得分:0)
以下查询是否适合您?
session
.QueryOver<Package>()
.JoinQueryOver(x => x.Manifest)
.JoinQueryOver(x => x.Content)
.Where(x => x.Status == someStatus)
.Select(Projections.RowCount())
.FutureValue<int>()
.Value