在NHibernate中使用Select和OrderBy的QueryOver

时间:2011-05-17 17:29:07

标签: nhibernate lambda queryover

我想知道在使用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 个答案:

答案 0 :(得分:7)

您的查询无法开始使用。您首先需要进行加入,然后您可以通过选择投影来完成订单。

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>();