我有一个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