如何在NHibernate查询中使用Max和Group By

本文关键字:Max Group By NHibernate 查询 | 更新日期: 2023-09-27 17:58:52

如何使用NHibernate执行以下查询?

SELECT ClientId, MAX(Id)
FROM Items
GROUP BY ClientId;

如何在NHibernate查询中使用Max和Group By

设法解决了这个问题,最终比我想象的更简单:

            var result = from item in session.Linq<Item>()
                         group item by item.ClientId
                         into itemGroups
                         select new
                             {
                                 id = itemGroups.Key,
                                 max = itemGroups.Max(er => er.Id)
                             };

关于NHibernate的三个查询API,请参见NHibernaate参考的第14、15和16章。

您还可以在NHibernate上使用LINQ查询。这可能是最简单的选择。对ISession使用Query<MyType>()扩展方法来获得IQueryable