【发布时间】:2009-01-12 02:48:51
【问题描述】:
rowCount在query.SetFirstResult不为0时返回0?
如果 pageIndex x pageSize = 0 的结果 // 它给了我 rowCount 但当它不等于 0 时,countCriteria 给我 0 而不是 rowCount。
我能做什么?
提前致谢
【问题讨论】:
标签: nhibernate projection rowcount
rowCount在query.SetFirstResult不为0时返回0?
如果 pageIndex x pageSize = 0 的结果 // 它给了我 rowCount 但当它不等于 0 时,countCriteria 给我 0 而不是 rowCount。
我能做什么?
提前致谢
【问题讨论】:
标签: nhibernate projection 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>();
这是我的场景的解决方案。我希望它可以帮助遇到同样问题的人。
谢谢
【讨论】: