1

query.SetFirstResult が 0 と異なる場合、rowCountは 0 を返しますか?

pageIndex x pageSize = 0 の結果 // rowCount が得られますが、それが 0 でない場合、countCriteria は rowCount ではなく 0 を返します。

私に何ができる ?

前もって感謝します

4

2 に答える 2

0

私は自分の問題を解決しました。問題は、 Nhibernate にCriteriaTransformer.TransformToRowCount に関するバグのあるスタッフがいるということです。int not long を返します。

そして、上記で私が間違っていたのは、限られた結果セット(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 に答える
0

最初に、sqlprofilerを使用して、実行されている sql を確認します。多分それには何か問題があります。基準に間違いが見当たりません。

于 2009-01-12T05:11:21.643 に答える