FluentNHibernate儿童的多对多条件计数

时间:2016-02-26 20:49:56

标签: fluent-nhibernate fluent-nhibernate-mapping

考虑以下实体:

Package        Manifest       Content
----------     ----------     ----------     
Id             PackageId      Id
Name           ContentId      Name
                              Status

关系是多对多关系,其中包可以包含多个内容,而内容可以属于多个包。

我想要做的是,对于给定的Package.Id,获取具有特定Content的所有Status的计数。

我的映射工作正常,但我无法弄清楚如何在不加载Content的情况下实现Content的条件计数。一种选择是在映射中使用ApplyChildFilter并与ExtraLazyLoad一起使用,但这意味着我必须为此创建一个专用属性。

有没有办法实现这一目标,而不是回到CreateSQLQuery

1 个答案:

答案 0 :(得分:0)

以下查询是否适合您?

  session
    .QueryOver<Package>()
    .JoinQueryOver(x => x.Manifest)
    .JoinQueryOver(x => x.Content)
    .Where(x => x.Status == someStatus)
    .Select(Projections.RowCount())
    .FutureValue<int>()
    .Value