public EasyUIModel_PageData <TEntity> GetWithPaginationAndNavigationProperty <TKey>(int pageIndex, int pageSize,
                                                                                            Expression <Func <TEntity, bool> > whereExpression, Expression <Func <TEntity, TKey> > orderByExpression, bool isAsc = true, params string[] navigationPropertyName)
        {
            //dbSet.Include("导航属性名1").Include("导航属性名2").Include("导航属性名3").Where(where).OrderBy(orderBy).Skip(0).Take(10);
            //dbSet.Where(where).OrderBy(orderBy).Skip(0).Take(10);
            DbQuery <TEntity> dbQuery = _dbSet;

            //循环 加入 要连接查询的 导航属性名称
            foreach (string includeN in navigationPropertyName)
            {
                dbQuery = dbQuery.Include(includeN);
            }

            var dbSetWhered = dbQuery.Where(whereExpression);
            IOrderedQueryable <TEntity> orderWhere = null;

            if (isAsc)
            {
                orderWhere = dbSetWhered.OrderBy(orderByExpression);
            }
            else
            {
                orderWhere = dbSetWhered.OrderByDescending(orderByExpression);
            }

            EasyUIModel_PageData <TEntity> pageData = new EasyUIModel_PageData <TEntity>();

            pageData.rows  = orderWhere.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();
            pageData.total = dbSetWhered.Count();

            return(pageData);
        }
        public EasyUIModel_PageData <TEntity> GetWithPagination <TKey>(int pageIndex, int pageSize, Expression <Func <TEntity, bool> > whereExpression,
                                                                       Expression <Func <TEntity, TKey> > orderByExpression, bool isAsc = true)
        {
            var list = _dbSet.Where(whereExpression);
            IOrderedQueryable <TEntity> orderedList = null;

            orderedList = isAsc ? list.OrderBy(orderByExpression) : list.OrderByDescending(orderByExpression);

            EasyUIModel_PageData <TEntity> pageData = new EasyUIModel_PageData <TEntity>
            {
                rows  = orderedList.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList(),
                total = orderedList.Count()
            };

            return(pageData);
        }
Exemple #3
0
        public ActionResult Index(int id)
        {
            //MODEL.FormatMODEL.PageData<MODEL.Permission> page
            int pageIndex = Request.Form["page"].AsInt();
            int pageSize  = Request.Form["rows"].AsInt();

            EasyUIModel_PageData <Permission> permissions = null;

            if (id == 1)                                                                                                                                                             //display all permissions
            {
                permissions = OperationContext.ServiceSession.PermissionService.GetWithPagination(pageIndex, pageSize, p => p.permissionIsDeleted == false, p => p.permissionOrder); //.Where(o => o.perIsDel == false).OrderBy(o => o.perOrder).ToList().Select(o=>o.ToPOCO());
            }
            else
            {
                permissions = OperationContext.ServiceSession.PermissionService.GetWithPagination(pageIndex, pageSize, p => p.permissionIsDeleted == false && p.permissionParentID == id, p => p.permissionOrder); //.Where(o => o.perIsDel == false).OrderBy(o => o.perOrder).ToList().Select(o=>o.ToPOCO());
            }

            permissions.rows = permissions.rows.Select(o => o.ToPOCO()).ToList();

            var jsSerializer = new JavaScriptSerializer();
            var strJson      = jsSerializer.Serialize(permissions);

            return(Content(strJson));
        }