je une entité « personne » une personne a une collection d'amis (aussi entités personne)NHibernate lambdas JOINTES collection ordonnée
Je veux obtenir les 10 premiers amis d'une personne en particulier, ordonnée par LatestLogin.
Mon meilleur effort:
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>();
}
qui ne saisit tous les utilisateurs amis, mais ils ne sont pas commandés LatestLogin. Des idées?
Je suggère d'utiliser SQL Profiler (si vous utilisez SQL Server) pour obtenir la requête générée et examiner ce qui est réellement généré et pourquoi il ne fonctionne pas en tant que requête SQL. Peut-être aussi partager cela avec nous ... La propriété Friends est-elle un many-to-many avec Person à travers une table d'association? – tolism7