Mik*_*keL 1 c# nhibernate pagination queryover
我正在使用Nhibernate 3.0并需要在网站上实现分页.基本上我们有一个ProductCategory,它有一个与之关联的产品集合.到目前为止,我有这个确实有效
var result = Session.QueryOver<TEntity>().TransformUsing(Transformers.DistinctRootEntity)
.Where(category => category.CategoryId == criteria.CategoryId)
.Fetch(category => category.Products).Eager
.Take(pageSize)
.Skip((pageIndex - 1)*pageSize)
.Future<TEntity>();
Run Code Online (Sandbox Code Playgroud)
这将返回我正在请求的类别,并根据传入的页面大小和页面索引正确分页子产品.
我现在想要做的实际上是获得产品的总行数,例如,即使我只返回5个产品,我需要知道总共有100个.
非常感谢
你应该通过从Product侧面和雇用的另一个查询来做到这一点.RowCount().
这样的事情(如果你Product有Category房产):
int count = session.QueryOver<Product>()
.Where(x => x.Category.Id == categoryId)
.RowCount();
Run Code Online (Sandbox Code Playgroud)
在这里,您可以找到更多计算方法:如何使用NHibernate QueryOver API获取行数?
另一篇可能对您有所帮助的博客文章:
NHibernate 3.0 QueryOver - 在数据库级别进行搜索和分页
| 归档时间: |
|
| 查看次数: |
2281 次 |
| 最近记录: |