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

时间:2013-02-12 11:47:57

标签: c# .net linq nhibernate

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

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

2 个答案:

答案 0 :(得分:2)

管理工作,最终比我想象的更简单:

            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)
                             };

答案 1 :(得分:0)

有关NHibernate的三个查询API,请参阅NHibernate参考的第14,15和16章。

您还可以在NHibernate上使用LINQ查询。这可能是最简单的替代方案。使用Query<MyType>()的{​​{1}}扩展程序获取ISession