2010-10-11 5 views
1

J'ai une classe PrivateMessage et je veux obtenir la liste des PM pour l'utilisateur triés chronologiquement par CreationDate ou LastAnswerDate (en fonction de ce qui est plus récent) en utilisant l'API Criteria.API des critères NHibernate - ordre par maximum de deux propriétés

Comment trier par max de ces deux propriétés dans l'API Criteria? Mon code ressemble à ce qui suit:

var dc = DetachedCriteria.For<PrivateMessage>(); 
... 
dc.AddOrder(new Order("???"); 
return (IList<PrivateMessage>)FindAll(typeof(PrivateMessage), dc); 

CreationDate est DateTime et LastAnswerDate est DateTime?.

Merci!

Répondre

3
Order.Desc(
    Projections.Conditional(
     Restrictions.GtProperty("CreationDate", "LastAnswerDate"), 
     Projections.Property("CreationDate"), 
     Projections.Property("LastAnswerDate")))) 
+0

Merci :). J'ai résolu cela par fusion parce qu'une propriété est nullable mais votre solution fonctionnera toujours. – Episodex

Questions connexes