NHibernate预测和“有”条款

我正在使用NHibernate使用条件API查询我的数据库。 我的标准如下:

ICriteria c = Session.CreateCriteria(typeof(Transaction)); ProjectionList projections = Projections.ProjectionList(); projections.Add(Projections.Sum("Units"), "Units"); projections.Add(Projections.GroupProperty("Account"), "Account"); projections.Add(Projections.GroupProperty("Security"), "Security"); c.SetProjection(projections); 

这工作正常,但我想要的是一种方法,能够限制查询只在“Units”属性> 0时返回。在SQL中我只是我们一个Having Units > 0子句但是我没有能够在NHibernate中找到一种方法。 有没有人有任何想法或是我唯一的选择使用HQL?

您可以从Criteria对象访问ProjectionCriteria。

 ... c.SetProjection(projections) .ProjectionCriteria .Add(Restrictions.Ge("Units", 0)); 

编辑:此解决方案目前不起作用,但它应该在NHibernate 2.1.0中工作

对于那里有类似问题的人,我只是这样解决了:

 IProjection howMany = Projections.Count("Id").As("HowMany"); ICriteria criteria = session .CreateCriteria() .SetProjection( howMany, Projections.GroupProperty("Native"), Projections.GroupProperty("Locale") ); criteria.Add(Restrictions.Gt(howMany,1));