Пример #1
0
        /// <summary>
        ///获取分页数据
        /// </summary>
        /// <param name="pageIndex">页码</param>
        /// <param name="pageCount">页大小</param>
        /// <param name="specification">条件</param>
        /// <param name="orderByExpressions">是否排序</param>
        /// <returns>实体的分页数据</returns>
        public PagedList <TEntity> GetPaged(int pageIndex, int pageCount, ISpecification <TEntity> specification,
                                            SortExpression <TEntity> orderByExpressions = null)
        {
            if (pageIndex == 0)
            {
                pageIndex = 1;
            }
            var set   = GetAllMatching(specification);
            int totel = set.Count();
            IEnumerable <TEntity> items;

            if (orderByExpressions != null && orderByExpressions.IsNeedSort())
            {
                items = orderByExpressions.BuildSort(set).Skip(pageCount * (pageIndex - 1)).Take(pageCount);
            }
            else
            {
                items = set.OrderByDescending(item => item.Id).Skip(pageCount * (pageIndex - 1)).Take(pageCount);
            }
            return(new PagedList <TEntity>(totel, pageCount, pageIndex, items.ToList()));
        }