2

既に構築された DetachedCriteria から .SetMaxResults() / .SetFirstResults() を削除/元に戻す方法はありますか?

元の DetachedCriteria を変更せずに実行できますか?

4

1 に答える 1

4

はい、値を「-1」に設定することでこれを削除/元に戻すことができます。nHibernate は内部的に静的値 NHibernate.Engine.RowSelection.NoValue を使用します。

criteria.SetMaxResults(NHibernate.Engine.RowSelection.NoValue);
criteria.SetFirstResult(NHibernate.Engine.RowSelection.NoValue);

元の DetachedCriteria を保持したい場合は、.SetMaxResults / .SetFirstResult を変更する前にクローンを作成する必要があります

 DetachedCriteria clonedCriteria = NHibernate.CriteriaTransformer.Clone(originalCriteria)
                 .SetMaxResults(NHibernate.Engine.RowSelection.NoValue)
                 .SetFirstResult(NHibernate.Engine.RowSelection.NoValue);
于 2012-06-05T13:57:46.583 に答える