对集合中的字段求和的NHibernate条件查询

对集合中的字段求和的NHibernate条件查询,nhibernate,nhibernate-criteria,Nhibernate,Nhibernate Criteria,在表顺序和表行之间有一个简单的一对多关系 我想要一个报告每个订单实体和Line.Value字段总和的查询 我可以在HQL中执行此操作: select order, sum(line.Value) as LineValue from Order as order join order.Lines as line group by order 到目前为止,一切顺利。当我运行这个程序时,我会得到一个对象数组列表,其中[0]是顺序,[1]是行值之和 如何使用criteria API执行相同

在表顺序和表行之间有一个简单的一对多关系

我想要一个报告每个订单实体和Line.Value字段总和的查询

我可以在HQL中执行此操作:

select order, sum(line.Value) as LineValue 
from Order as order   
  join order.Lines as line
group by order
到目前为止,一切顺利。当我运行这个程序时,我会得到一个对象数组列表,其中[0]是顺序,[1]是行值之和

如何使用criteria API执行相同的操作?

我能得到的最接近的是:

session.CreateCriteria(typeof(Order))
  .CreateAlias("Lines", "l")
  .SetProjection(Projections.ProjectionList()
     .Add(Projections.GroupProperty("Id"))
     .Add(Projections.GroupProperty("Customer"))
     /* ... ditto for each Order field ... */
     .Add(Projections.Sum("l.Value"))

我必须手动添加每个我想要返回的属性。如何指定要按所有订单字段分组?

实际上,HQL不起作用。您必须在group by.Odd中显式指定Order的所有属性。。。它起作用了。也许是反向错误?FWIW这是在NHibernate v2.1.2.4上的,实际上,HQL不起作用。您必须在group by.Odd中显式指定Order的所有属性。。。它起作用了。也许是反向错误?FWIW这是在NHibernate v2.1.2.4上