2009-03-03 39 views
1

使用Cats和Kittens的标准NHibernate示例,我将如何使用ICriteria根据Kitten计数对Cat分类?例如,我想要做类似的事情:使用ICriteria&NHibernate按集合计数排序

ICriteria crit = Session.CreateCriteria(typeof(Cat)); 
return crit.Order(Order.Asc("**Kittens.Count**")); 

任何人都知道如何做到这一点?

回答

1

在HQL,你可以做这样的:

select cat 
from Eg.Cat cat 
join cat.Kittens kitten 
group by cat 
order by count(kitten) asc 
1

http://forum.hibernate.org/viewtopic.php?p=2401219

这是Java的休眠,但几乎同样的事情(投影,AddOrder)

+0

当我做投影与AddOrder crit.SetProjection(Projections.Alias(Projections.Count(“Kittens”),“kcnt”))。SetResultTransformer(CriteriaUtil.DistinctRootEntity).List(); 该列表只有1个结果 - 一个整数! – 2009-03-03 01:35:12