NHibernate条件查询从集合中汇总字段

时间:2010-11-24 16:55:16

标签: nhibernate nhibernate-criteria

我在表Order和table Line之间有一个简单的一对多关系。

我想要一个报告每个Order实体和Line.Value字段之和的查询。

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

select order, sum(line.Value) as LineValue 
from Order as order   
  join order.Lines as line
group by order

到目前为止,这么好。当我运行它时,我得到一个对象数组列表,其中[0]是Order,[1]是行值的总和。

如何使用条件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"))

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

0 个答案:

没有答案