Fluent nhibernate FluentNHibernate多对多条件子计数

Fluent nhibernate FluentNHibernate多对多条件子计数,fluent-nhibernate,fluent-nhibernate-mapping,Fluent Nhibernate,Fluent Nhibernate Mapping,考虑以下实体: Package Manifest Content ---------- ---------- ---------- Id PackageId Id Name ContentId Name Status 这种关系是多对多的,其中一个包可以有多个内容,而内容可以属于多个包 我想做的是,对于给定的包.Id,获取

考虑以下实体:

Package        Manifest       Content
----------     ----------     ----------     
Id             PackageId      Id
Name           ContentId      Name
                              Status
这种关系是多对多的,其中一个包可以有多个内容,而内容可以属于多个包

我想做的是,对于给定的
包.Id
,获取具有特定
状态的所有
内容的计数

我的映射工作得很好,但我还无法找出如何在不加载
内容的情况下实现
内容的条件计数。一个选项是在映射中使用
ApplyChildFilter
,并与
extrallazyload
一起使用,但这意味着我必须为此创建一个专用属性


有没有一种方法可以在不依赖于
CreateSQLQuery
的情况下实现这一点?

以下查询对您有用吗

  session
    .QueryOver<Package>()
    .JoinQueryOver(x => x.Manifest)
    .JoinQueryOver(x => x.Content)
    .Where(x => x.Status == someStatus)
    .Select(Projections.RowCount())
    .FutureValue<int>()
    .Value
会话
.QueryOver()
.JoinQueryOver(x=>x.Manifest)
.JoinQueryOver(x=>x.Content)
.Where(x=>x.Status==someStatus)
.Select(Projections.RowCount())
.未来价值()
价值

问题在于清单没有显式映射,因为它是通过
HasManyToMany.Table(“清单”).ParentKeyColumn(“PackageId”).ChildKeyColumn(“ContentId”)隐式映射的。
。如果我为清单添加了显式映射和属性,我认为您的建议会起作用,但我希望能找到某种方法来避免这种情况(现在只是使用SQL基本上完成这种连接)。