从NHibernate获取聚合结果的最佳方式是什么?

问题描述:

例如,我试图在不同的实例中获取最短日期,最大日期和总和。我试图避免硬编码SQL字符串或通过IList循环来获取这些值。从NHibernate获取聚合结果的最佳方式是什么?

你可以通过NHibernate运行直接查询。或者通过信息添加额外的订单,以便通过您感兴趣的参数按顺序生成结果对象。顺序降序和您的第0个元素是您想要的最大和最小值。等等等等。有不止一种方式来剥皮冬眠的猫。

+0

我想可能有什么事情的标准API,我失踪英寸感谢您的建议。一个完美的工作与一种! – 2008-10-14 15:05:41

如果您需要查询报告,请使用预测。

喜欢的东西:

Session.CreateCriteria (typeof (Order)) 
      .Add (Restrictions.Between ("DateReceived" , today.AddMonths (-1) , today)) 
      .CreateAlias ("Lines" , "lines") 
      .SetProjection (
      Projections.ProjectionList () 
       .Add (Projections.Sum ("lines.TotalCost")) 
       .Add (Projections.Avg ("lines.TotalCost")) 
       .Add (Projections.GroupProperty ("Customer")) 
      ) ; 

有一个在Nhibernate Documentation更多的东西(它是一路下跌2/3)