Я думаю, что я бы просто получить комментарии, как есть (не отсортирован частичном), а затем просто сортировать коллекцию Комментарии рецепта, прежде чем отобразить комментарии.
В зависимости от того, как вы создали свой класс, и вашего сопоставления, я думаю, что это единственный способ, поскольку отображение набора и суммирования представляет собой неупорядоченные коллекции в NHibernate.
Что-то вроде этого:
Recipe recipe = session.Get<Recipe> (id);
var orderedComments = recipe.Comments.OrderBy (comment => comment.EnteredOn);
foreach(Comment c in orderedComments)
{
// display the comment
}
Где моя Reciple сущность выглядит примерно так:
public class Recipe
{
// ...
...
private ISet<Comment> _comments = new HashedSet<Comment>();
public ReadOnlyCollection<Comment> Comments
{
get { return _comments.ToList().AsReadOnly(); }
}
public void AddComment(Comment c)
{
if(c != null && !_comments.Contains (c))
{
c.Recipe = this;
_comments.Add (c);
}
}
public void RemoveComment(Comment c)
{
if(c != null && _comments.Contains (c))
{
c.Recipe = null;
_comments.Remove(c);
}
}
}
и отображение:
<class name="Recipe" table="Recipes">
...
<set name="Comments" access="field.camelcase-underscore" ... >
...
</set>
</class>