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 回答