阅读量:3
在NHibernate中进行分页查询可以使用Criteria API或者HQL(Hibernate Query Language)。以下是使用Criteria API进行分页查询的示例代码:
using NHibernate; using NHibernate.Criterion; public IList<Product> GetProducts(int pageIndex, int pageSize) { using (ISession session = sessionFactory.OpenSession()) { ICriteria criteria = session.CreateCriteria<Product>(); // 设置分页参数 criteria.SetFirstResult((pageIndex - 1) * pageSize); criteria.SetMaxResults(pageSize); return criteria.List<Product>(); } }
在上面的示例代码中,首先创建一个Criteria对象,然后通过调用SetFirstResult和SetMaxResults方法设置分页参数,最后调用List方法获取结果集。
另外,也可以使用HQL进行分页查询,示例代码如下:
using NHibernate; using NHibernate.Linq; public IList<Product> GetProducts(int pageIndex, int pageSize) { using (ISession session = sessionFactory.OpenSession()) { string hql = "FROM Product"; IQuery query = session.CreateQuery(hql); // 设置分页参数 query.SetFirstResult((pageIndex - 1) * pageSize); query.SetMaxResults(pageSize); return query.List<Product>(); } }
在这个示例中,首先创建一个HQL查询对象,然后通过调用SetFirstResult和SetMaxResults方法设置分页参数,最后调用List方法获取结果集。
无论是使用Criteria API还是HQL,都可以实现在NHibernate中进行分页查询。