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

标签 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

最佳答案

所谓的 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[]>();

关于c# - Fluent Nhibernate - 选择特定列并使用 group by 计数查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33982582/

相关文章:

NHibernate 3 - 状态如何?

c# - Fluent Nhibernate - 如何指定表名

c# - 有没有办法在 C# 中获取禁用/启用的网络接口(interface)列表

c# - 如何使用忽略大小写敏感的参数编写存储过程

wcf - 3 层 nhibernate + wcf + Silverlight

c# - 没有 session 绑定(bind)到当前上下文

c# - NHibernate Expression.Like 两个字段的条件

c# - 如何使用 LINQ 生成新类型的对象

c# - 暂停和恢复线程

asp.net-mvc - 已经使用 nhibernate.current_session 的键配置了 session 工厂