Fluent Nhibernate - 使用group by选择特定列和计数查询

时间:2015-11-29 12:07:13

标签: c# nhibernate fluent-nhibernate queryover nhibernate-criteria

我在使用流利的nhibernate来排除查询时遇到了一些麻烦。 我有一张表:包含以下列的书籍:

ID, NAME, YEAR, BOOK_TYPE, AUTHOR_ID

我想在Fluent NHibernate中执行以下sql查询:

SELECT BOOK_TYPE, COUNT(*)
FROM BOOKS
GROUP BY BOOK_TYPE

1 个答案:

答案 0 :(得分:3)

所谓的 Fluent-NHibernate 只是一个映射扩展。为了获取数据,我们需要NHibernate构建n个查询功能:ICriteriaQueryOver或甚至 LINQ

根据文档,我们可以使用QueryOver API

对上述案例进行投影

16.6. QueryOver - Projections

代码段:

IList selection =
    session.QueryOver<Book>()
        .SelectList(list => list
            .Select(c => c.BooktType)
            .SelectCount(c => c.ID))
        .List<object[]>();