Projection.RowCountInt64 () возвращает 0, когда я устанавливаю SetFirstResult - PullRequest
1 голос
/ 12 января 2009

rowCount возвращает 0, когда query.SetFirstResult отличается от 0?

если результат pageIndex x pageSize = 0 // он дает мне rowCount, но когда он не равен 0, countCriteria дает мне 0 вместо rowCount.

Что я могу сделать?

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 12 января 2009

Я решил свою проблему. Дело в том, что в 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>();

Это решение для моего сценария. Я надеюсь, что это помогает кому-то, кто имеет ту же проблему.

Thaks

0 голосов
/ 12 января 2009

Первое, что нужно сделать, это использовать sqlprofiler и проверить, что sql выполняется. Может быть, что-то не так с этим. Я не вижу в критериях что-то не так.

...