如何使用NHibernate执行以下查询?
SELECT ClientId, MAX(Id)
FROM Items
GROUP BY ClientId;
设法解决了这个问题,最终比我想象的更简单:
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
。