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

Fluent Nhibernate - selecting specific column and count query with group by

我在 fluent nhibernate 中执行查询时遇到了一些问题。 我有一个 table : 包含以下列的书籍:

ID, NAME, YEAR, BOOK_TYPE, AUTHOR_ID

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

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

所谓的Fluent-NHibernate只是一个映射扩展。为了获取数据,我们需要 NHibernate 内置的查询功能: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[]>();