nhibernate - 一次调用产生多个结果

标签 nhibernate

分页数据时,我不仅想返回10条结果,还想获取所有页面中的项目总数。

如何在一次调用中获取页面的总计数和结果?

我的分页方法是:

public IList GetByCategoryId(int CategoryId, int firstResult, int maxResults) {

        IList<Article> articles = Session.CreateQuery(
            "select a from Article as a join a.Categories c where c.ID = :ID")
            .SetInt32("ID", categoryId)
            .SetFirstResult(firstResult)
            .SetMaxResults(maxResults)
            .List<Article>();



        return articles;
    }

最佳答案

事实是您调用了两次电话。但是 count(*) 调用在大多数数据库中非常非常便宜,当您在主调用之后执行此操作时,有时查询缓存会有所帮助。

您的计数器调用通常也会有点不同,它实际上不需要使用内部连接才有意义。还有一些其他小的性能调整,但大多数时候您不需要它们。

关于nhibernate - 一次调用产生多个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1947026/

相关文章:

t-sql - linq to nhibernate 中的条件行计数不起作用

c# - .NET 4.6 中的 NHibernate 按代码映射抛出 "Cannot extend unmapped class"

nhibernate - 如果表中没有索引,如何配置 NHibernate 映射到数组?

.net - nhibernate 和虚拟类属性?

sql-server - 如何在列内保存 "\r"和 "\n"

nhibernate - 流畅的 NHibernate 映射具有孤立子记录的父/子表

nhibernate - CaSTLe ActiveRecord 和 AfterLoad 事件

c# - 使用 NHibernate 在 MVC3 中处理异常和回滚

c# - NHibernate 3 或 4 等同于 Entity Framework Include

c# - 如何在 nhibernate 查询中添加 groupby?