У меня проблема с NHibernate, что, похоже, я не могу найти простой способ.NHibernate Aggregate Subquery
У меня есть следующие базы данных:
игры: ID, Score, Match_ID
Match: ID
Матч состоит из 3-х игр.
Я хочу, чтобы выяснить, что максимальный балл Матч, поэтому следующий SQL будет делать трюк:
select max(a.total) from
(select Match.ID, sum(Game.Score) as total
from Game inner join Match
on Game.Match_ID = Match.ID
group by Match.ID) a
В NHibernate, это, кажется, немного сложнее. По-видимому, HQL не разрешает подзапросы в предложении from, поэтому я не могу это использовать.
Я уверен, что это можно сделать с помощью ICriteria, но я только начал использовать NH, поэтому я не могу понять это. Я в основном получили следующее:
Session.CreateCriteria<Game>()
.SetProjection(Projections.ProjectionList()
.Add(Projections.GroupProperty("Match"))
.Add(Projections.Sum("Score"))).List();
После этого я играл с различными ассортиментов DetachedCriteria, но, похоже, просто идти по кругу.
Спасибо, HQL работает. – Carl