query.SetFirstResult が 0 と異なる場合、rowCountは 0 を返しますか?
pageIndex x pageSize = 0 の結果 // rowCount が得られますが、それが 0 でない場合、countCriteria は rowCount ではなく 0 を返します。
私に何ができる ?
前もって感謝します
query.SetFirstResult が 0 と異なる場合、rowCountは 0 を返しますか?
pageIndex x pageSize = 0 の結果 // rowCount が得られますが、それが 0 でない場合、countCriteria は rowCount ではなく 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>();
これが私のシナリオの解決策です。同じ問題を抱えている人の助けになることを願っています。
タクス
最初に、sqlprofilerを使用して、実行されている sql を確認します。多分それには何か問題があります。基準に間違いが見当たりません。