知道子集合计数而不将其加载到NHIbernate中

知道子集合计数而不将其加载到NHIbernate中,nhibernate,fluent-nhibernate,Nhibernate,Fluent Nhibernate,我正在使用NHibernate和FluentNH。我有一个简单的类叫做PostCategory,它包含一组帖子。PostCategory类包含一个名为TotalActivePosts的属性。加载所有PostCategories时,我希望在此属性中填充每个类别的活动帖子数。我怎么能做到?非常感谢您的帮助 维贾亚·阿南德(Vijaya Anand)我的做法是使用。参见第5项-任意SQL。 您可以使用以下内容: Select Count(*) from Posts where PostCategory

我正在使用NHibernate和FluentNH。我有一个简单的类叫做PostCategory,它包含一组帖子。PostCategory类包含一个名为TotalActivePosts的属性。加载所有PostCategories时,我希望在此属性中填充每个类别的活动帖子数。我怎么能做到?非常感谢您的帮助


维贾亚·阿南德(Vijaya Anand)

我的做法是使用。参见第5项-任意SQL。
您可以使用以下内容:

Select Count(*) from Posts where PostCategoryId = Id And IsActive = 1    

另请参见

您可以执行Sjonny建议的操作,也可以在映射上使用
lazy=“extra”
属性。这样,您就可以只做Posts.Count,而不必加载所有实体即可获得计数

见本问题:

我正在使用Fluent NHibernate。如何以及在何处指定此lazy=“extra”?(注意:目前很多类我都在使用额外的属性,比如TotalPosts、TotalComments,它们与类中的公式相关联,以了解子集合的数量,而不完全加载它们。如果我可以使用lazy=“extra”功能避免它们,那真是太好了!)我没有意识到这个选项。美好的虽然捷豹提到它不是lazy=“extra”选项的“官方”功能,但他发现它有问题。因此,也许应该谨慎使用。@Vijaya
HasMany(p=>p.Posts)。extralaxyload()
computed属性的链接是404