Как я могу выполнить следующий запрос с помощью NHibernate?Как использовать Max и Group By в запросе NHibernate?
SELECT ClientId, MAX(Id)
FROM Items
GROUP BY ClientId;
Как я могу выполнить следующий запрос с помощью NHibernate?Как использовать Max и Group By в запросе 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)
};
Там вы, молодцы, вам просто нужно было немного prod! – Rippo
См. Главы 14, 15 и 16 ссылки NHibernate для трех API запросов NHibernate.
Вы также можете использовать LINQ-запросы по NHibernate. Это может быть самая простая альтернатива для начала. Используйте метод расширения Query<MyType>()
для ISession
, чтобы получить IQueryable
.
Ну, я не знаю слишком много о _NHibernate_, но это зависит от вашего отображения? –
Какой API запросов вы предпочитаете? Запрос (Linq), QueryOver, HQL или ICriteria? – Rippo
Я предпочитаю Linq, но решения в QueryOver или ICriteria тоже были бы прекрасными –