我有一個NHibernate的問題,我似乎無法找到一個簡單的解決方法。NHibernate綜合子查詢
我有以下數據庫:
遊戲:ID,得分,Match_ID
匹配: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不允許子條目中的子查詢,所以我不能真正使用它。
我很確定它可以用ICriteria完成,但我只是剛開始使用NH,所以我似乎無法弄清楚。我基本上有以下幾點:
Session.CreateCriteria<Game>()
.SetProjection(Projections.ProjectionList()
.Add(Projections.GroupProperty("Match"))
.Add(Projections.Sum("Score"))).List();
之後,我已經用的DetachedCriteria的各種花色品種玩耍了,只是似乎在圈子一輪去。
謝謝,HQL的工作原理。 – Carl 2009-11-05 19:40:13