1

当 query.SetFirstResult 与 0 不同时rowCount返回 0 ?

如果 pageIndex x pageSize = 0 的结果 // 它给了我 rowCount 但当它不等于 0 时,countCriteria 给我 0 而不是 rowCount。

我能做些什么 ?

提前致谢

4

2 回答 2

0

首先是使用sqlprofiler并检查正在执行的 sql。也许这有什么问题。我看不出标准有什么问题。

于 2009-01-12T05:11:21.643 回答
0

我已经解决了我的问题。问题是,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>();

这是我的场景的解决方案。我希望它可以帮助有同样问题的人。

塔克斯

于 2009-01-12T14:23:42.277 回答