16

SQL クエリを NHibernate QueryOver 構文に変換しようとしていますが、カウント プロジェクションで並べ替える方法がわかりません。

SQL クエリは次のようになります。

select top 10 v.intVoteUserID, COUNT(v.intVoteUserID)
from Group_MessageVotes v
where v.dtmVote > :date
group by v.intVoteUserID
order by COUNT(v.intVoteUserID) desc

何か案は?

4

1 に答える 1

21

OrderBy句で射影を繰り返すだけです。

次のクエリはIList<object[]>、各アイテムの最初の要素がIDで、2番目の要素がカウントである場所を示します。

var result = session.QueryOver<GroupMessageVotes>()
.Select(
    Projections.Group<GroupMessageVotes>(e => e.intVoteUserID),
    Projections.Count<GroupMessageVotes>(e => e.intVoteUserID)
    )
.OrderBy(Projections.Count<GroupMessageVotes>(e => e.intVoteUserID)).Desc
.Take(10)
.List<object[]>();
于 2011-04-19T09:42:11.557 に答える