如何从nHibernate条件查询中删除/撤消.SetMaxResults(n)/ .SetFirstResult(n)?

时间:2012-06-05 13:57:46

标签: nhibernate

有没有办法从已经构造的DetachedCriteria中删除/撤消.SetMaxResults()/ .SetFirstResults()?

可以在不更改原始DetachedCriteria的情况下完成吗?

1 个答案:

答案 0 :(得分: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);