/// <summary>
        
/// NHibernate分页实现---条件可变
        
/// </summary>
        
/// <param name="maxResults">记录数</param>
        
/// <param name="pageStart">开始页</param>
        
/// <param name="totalRecordCount">总记录数</param>
        
/// <param name="order">排序方式</param>
        
/// <param name="criterionList">查询条件</param>
        
/// <returns></returns>
        public IList<T> GetByCriteria(int maxResults, int pageStart, out int totalRecordCount, Order order, params ICriterion[] criterionList)
        {
            ICriteria criteria 
= CreateCriteria();
            
foreach (ICriterion criterion in criterionList)
                criteria.Add(criterion);

            
//获取记录总数
            ICriteria criteriaRecordCount = CriteriaTransformer.Clone(criteria);
            totalRecordCount 
= criteriaRecordCount.SetProjection(NHibernate.Criterion.Projections.RowCount())
                .UniqueResult
<int>();


            criteria.SetMaxResults(maxResults);
            criteria.SetFirstResult(pageStart 
* maxResults);

            
if (order != null)
                criteria.AddOrder(order);

            
return criteria.List<T>();
        }

 

相关文章:

  • 2022-12-23
  • 2021-11-25
  • 2022-12-23
  • 2021-08-01
  • 2021-08-08
  • 2021-09-02
  • 2021-11-19
猜你喜欢
  • 2022-12-23
  • 2021-07-27
  • 2021-10-11
  • 2021-10-30
  • 2021-04-01
  • 2021-07-16
  • 2022-12-23
相关资源
相似解决方案