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));