QueryOver с помощью Select и OrderBy в NHibernate - PullRequest
4 голосов
/ 17 мая 2011

Мне интересно, как упорядочить группу результатов после выбора с помощью QueryOver. Мой запрос следующий:

CurrentSession.QueryOver<Book>()
    .Where(b => b.Author.Name = "SimpleName")
    .Select(Projections.Distinct(Projections.Property<Book>(b => b.Genre)))
    .OrderBy<Genre>(g => g.Name) // this extension does not exist! How do I order for a Genre?
    .List<Genre>()

Как мне это сделать?

Спасибо!

1 Ответ

7 голосов
/ 17 мая 2011

Ваш запрос не будет работать с самого начала.Прежде всего вам необходимо выполнить объединение, затем вы можете выполнить свой заказ и выбрать проекции.

Author author = null;
Genre genre = null;
CurrentSession.QueryOver<Book>()
     .JoinAlias(b => b.Author, author)
     .JoinAlias(b => b.Genre, genre)
     .Where(() => author.Name == "SimpleName")
     .OrderBy(() => genre.Name)
     .Select(Projections.Distinct(Projections.Property<Book>(b => b.Genre)))
     .List<Genre>();
...