分页数据时,我不仅想返回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/