有没有办法从已经构建的 DetachedCriteria 中删除/撤消 .SetMaxResults() / .SetFirstResults() ?
不改变原来的 DetachedCriteria 就可以做到吗?
有没有办法从已经构建的 DetachedCriteria 中删除/撤消 .SetMaxResults() / .SetFirstResults() ?
不改变原来的 DetachedCriteria 就可以做到吗?
是的,您可以通过将其值设置为“-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);