コード例 #1
0
ファイル: EFBaseRepository.cs プロジェクト: mychenchen/MHCore
        public async Task <ServicePageResult <T> > Select <S>(int pageSize, int pageIndex, Expression <Func <T, bool> > whereLambda, Expression <Func <T, S> > orderByLambda, bool isAsc)
        {
            ServicePageResult <T> res = new ServicePageResult <T>
            {
                PageIndex = pageIndex,
                PageSize  = pageSize
            };

            res.TotalSize = await myDbContextRead.Set <T>().Where(whereLambda).CountAsync();

            if (isAsc)
            {
                var entities = await myDbContextRead.Set <T>().Where(whereLambda)
                               .OrderBy <T, S>(orderByLambda)
                               .Skip(pageSize * (pageIndex - 1))
                               .Take(pageSize).ToListAsync();

                res.List = entities;
                return(res);
            }
            else
            {
                var entities = await myDbContextRead.Set <T>().Where(whereLambda)
                               .OrderByDescending <T, S>(orderByLambda)
                               .Skip(pageSize * (pageIndex - 1))
                               .Take(pageSize).ToListAsync();

                res.List = entities;

                return(res);
            }
        }
コード例 #2
0
        /// <summary>
        /// 查询分页
        /// </summary>
        /// <param name="pageSize">条数</param>
        /// <param name="pageIndex">页码</param>
        /// <param name="whereLambda">条件表达式</param>
        /// <param name="orderByLambda">orderby表达式</param>
        /// <param name="isAsc">true 正序 false 倒叙</param>
        /// <returns></returns>
        public async Task <ServicePageResult <T> > SelectPage(int pageSize, int pageIndex, Expression <Func <T, bool> > whereLambda, Expression <Func <T, object> > orderByLambda, bool isAsc = true)
        {
            ServicePageResult <T> res = new ServicePageResult <T>
            {
                PageIndex = pageIndex,
                PageSize  = pageSize
            };
            RefAsync <int> total = 0;

            if (isAsc)
            {
                res.List = await db.Queryable <T>().OrderBy(orderByLambda, OrderByType.Asc)
                           .ToPageListAsync(pageIndex, pageSize, total);
            }
            else
            {
                res.List = await db.Queryable <T>().OrderBy(orderByLambda, OrderByType.Desc)
                           .ToPageListAsync(pageIndex, pageSize, total);
            }

            res.TotalSize = total.Value;

            return(res);
        }