コレクションであるプロパティの数によってオブジェクトのリストを並べ替える方法はありますか?
議論のために、質問名プロパティを持つ質問オブジェクト、回答オブジェクトのコレクションであるプロパティ、およびユーザー オブジェクトのコレクションである別のプロパティがあるとします。ユーザーは質問テーブルの外部キーを介して質問テーブルに参加し、回答は中間の結合テーブルで結合されます。
nhibernate に「質問」オブジェクトのリストを取得させたい場合、Question.Answers.Count で注文できますか?
HQLを使用してドキュメントの例を試しました:
List<Question> list = nhelper.NHibernateSession
.CreateQuery("Select q from Question q left join q.Answers a group by q,a order by count(a)")
.List<Question>();
しかし、私は得る
"column Question.Name is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause"
すべてのプロパティを group by リストに追加しようとしましたが、うまくいきません。次に何が起こるかというと、外部キー userId が上記と同じエラーを引き起こしますが、nhibernate が次のようにリストしているため、それをグループに含めることはできません。
Question.Users.UserId
含まれていても解決しません。
何か案は?