从NHibernate获得聚合结果的最佳方法是什么?

时间:2008-10-14 14:26:17

标签: nhibernate

例如,我试图在不同的实例中获得最小日期,最大日期和总和。我试图避免硬编码SQL字符串或循环通过IList来获取这些值。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

如果您需要查询报告,请使用投影。

类似的东西:

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)