我正在使用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中起作用

关于c# - NHibernate Projections和 "Having"子句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/636925/

10-10 16:56