我有一个实体“人”一个人有一个朋友的集合(也是人实体)
我想获取由 LatestLogin 订购的特定人的前 10 个朋友。
我最大的努力是:
public static IList<Person> GetFriends(Person person, int count)
{
Person personAlias = null;
Person friendAlias = null;
ICriteria criteria = NHibernateSessionManager.Instance.GetSession()
.CreateCriteria(typeof (Person), () => personAlias)
.CreateCriteria(() => personAlias.Friends, () => friendAlias, JoinType.LeftOuterJoin)
.AddOrder(() => friendAlias.LatestLogin, Order.Desc)
.Add<Person>(p => p.ID == person.ID)
.SetMaxResults(count);
return criteria.List<Person>();
}
哪个确实抓住了所有用户的朋友,但他们不是由 LatestLogin 订购的。有任何想法吗?