当 query.SetFirstResult 与 0 不同时rowCount返回 0 ?
如果 pageIndex x pageSize = 0 的结果 // 它给了我 rowCount 但当它不等于 0 时,countCriteria 给我 0 而不是 rowCount。
我能做些什么 ?
提前致谢
当 query.SetFirstResult 与 0 不同时rowCount返回 0 ?
如果 pageIndex x pageSize = 0 的结果 // 它给了我 rowCount 但当它不等于 0 时,countCriteria 给我 0 而不是 rowCount。
我能做些什么 ?
提前致谢
首先是使用sqlprofiler并检查正在执行的 sql。也许这有什么问题。我看不出标准有什么问题。
我已经解决了我的问题。问题是,Nhibernate 有一个关于CriteriaTransformer.TransformToRowCount的错误工作人员。它返回 int 不长。
我在上面做错的是,我试图获取有限结果集的行数(设置了 SetFirstResult 和 SetMaxResult 的查询)
ISession session = NHibernateHttpModule.CurrentSession;
var countCriteria = CriteriaTransformer.TransformToRowCount(query);
rowCount = Convert.ToInt64(countCriteria.GetExecutableCriteria(session).UniqueResult());
query.SetMaxResults(pageSize).SetFirstResult(pageIndex * pageSize);
var customers = query.GetExecutableCriteria(session).List<Customer>();
这是我的场景的解决方案。我希望它可以帮助有同样问题的人。
塔克斯