Nhibernate Projections.RowCountInt64()在设置SetFirstResult时返回0

Nhibernate Projections.RowCountInt64()在设置SetFirstResult时返回0,nhibernate,projection,rowcount,Nhibernate,Projection,Rowcount,当query.SetFirstResult与0不同时,rowCount返回0 如果pageIndex x pageSize的结果为0//,则会给出行数,但当它不等于0时,countCriteria会给出0而不是行数 我能做什么 提前感谢第一件事是使用一个命令并检查正在执行的sql。也许这有问题。我看不出标准中有什么错误。我已经解决了我的问题。问题是,有一个Nhibernate关于CriteriaTransformer.TransformerRowCount的工作人员。它返回int不长 我在上面犯

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

如果pageIndex x pageSize的结果为0//,则会给出行数,但当它不等于0时,countCriteria会给出0而不是行数

我能做什么


提前感谢

第一件事是使用一个命令并检查正在执行的sql。也许这有问题。我看不出标准中有什么错误。

我已经解决了我的问题。问题是,有一个Nhibernate关于CriteriaTransformer.TransformerRowCount的工作人员。它返回int不长

我在上面犯的错误是,我试图获取有限结果集的行数(SetFirstResult和SetMaxResult设置的查询)

ISession session=NHibernateHttpModule.CurrentSession; var countCriteria=CriteriaTransformer.TransformToRowCount(查询); rowCount=Convert.ToInt64(countCriteria.GetExecutableCriteria(session.UniqueResult()); query.SetMaxResults(pageSize).SetFirstResult(pageIndex*pageSize); var customers=query.GetExecutableCriteria(session.List(); 这是我的场景的解决方案。我希望它能帮助有同样问题的人


Thaks

我在sqlprofiler上检查了sql,但我无法理解它。我已经发布了正在执行的sql。谢谢
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>();