首页 > 代码库 > MVC个人认为的终极分页

MVC个人认为的终极分页

//传入要查询的字段,查询条件(例如根据姓名查看数据的数据筛选),排序参数,页码,信息条数        //T:要操作的类型        //Tkey:根据什么类型来排        //Skip:跳过多少条        //Take:获得多少条        //Total:返回的信息总数        //isAsc:用户指定升降序        //使用Expression是因为这个方法的重载属于IQueryable方式        //这样的查询分页较为灵活,不因为类型而受限,你可传入一个学生类、一个教师类,或者一个其他类,之后查询的也是相关类的内容并且分页        //Expression<Func<T, dynamic>>这里传入的是一个student类,返回的如果是T的话就只能得到student里面所有的属性。但是如果写的是dynamic,就会是运行时返回一个指定列 的查询        static List<dynamic> GetPageList<T, Tkey>(Expression<Func<T, dynamic>> select1, Expression<Func<T, bool>> where, Expression<Func<T, Tkey>> order, int pageSize, int pageIndex, out int total, bool isAsc) where T : class        {            //Ef空间            DBTestEntities context = new DBTestEntities();            total = context.Set<T>().Where(where).Count();            var result = context.Set<T>().Where(where);            //升降序判断            if (isAsc)            {                result = result.OrderBy(order);            }            else            {                result = result.OrderByDescending(order);            }            //Tolist:可以避免linq的延时加载            return result.Skip((pageIndex - 1) * pageSize).Take(pageSize).Select(select1).ToList();        }

复制粘贴即可使用,多谢传智

MVC个人认为的终极分页