public static IEnumerable<T> Enumerate<T>(this ICriteria criteria, int pageSize = 1000)
{
var entityCount = CriteriaTransformer.TransformToRowCount(criteria).UniqueResult<int>();
var pageCount = (int) Math.Ceiling(entityCount/(double) pageSize);
criteria = CriteriaTransformer.Clone(criteria).SetMaxResults(pageSize);
return Enumerable.Range(0, pageCount)
.SelectMany(pageNum => criteria.SetFirstResult(pageNum*pageSize).List<T>());
}
NHibernate
Showing posts with label NHibernate. Show all posts
Showing posts with label NHibernate. Show all posts
Thursday, February 2, 2012
Page through potentially large NHibernate criteria query results
Subscribe to:
Posts (Atom)