有没有办法通过一个集合的属性计数来排序对象列表?
为了论证,假设我有一个问题对象,它有一个问题名称属性,一个属性是答案对象的集合,另一个属性是用户对象的集合。用户通过问题表上的外键加入问题表,答案与中间连接表连接。
如果我想让 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"
我尝试将所有属性添加到按列表分组,但它不起作用。然后发生的事情是外键 userId 导致与上述相同的错误,但我无法将其包含在组中,因为 nhibernate 将其列为
Question.Users.UserId
如果包含它并不能解决它。
有任何想法吗?