你的位置:首页 > 软件开发 > ASP.net > Linq 数据排序,分页

Linq 数据排序,分页

发布时间:2016-01-19 11:00:08
在用Linq查询中,常常需要用到分页功能,因为每次都需要些分页这些功能,于是把分页功能提取出来,不喜大家勿喷,只是贴出来,自觉地很实用。一下贴出核心代码: 1 /// <summary> 2 /// LinqHelper 主要用于数据集,排序 分页等功能 3 ...

Linq 数据排序,分页

  在用Linq查询中,常常需要用到分页功能,因为每次都需要些分页这些功能,于是把分页功能提取出来,不喜大家勿喷,只是贴出来,自觉地很实用。一下贴出核心代码:

 1 /// <summary> 2   /// LinqHelper 主要用于数据集,排序 分页等功能 3   /// </summary> 4   public class LinqHelper 5   { 6     /// <summary> 7     /// 排序 8     /// </summary> 9     /// <typeparam name="T"></typeparam>10     /// <param name="source"></param>11     /// <param name="sortExpression"></param>12     /// <param name="sortDirection"></param>13     /// <returns></returns>14     public static IQueryable<T> DataSorting<T>(IQueryable<T> source, get='_blank'>string sortExpression, string sortDirection)15     {16       string sortingDir = string.Empty;17       if (sortDirection.ToUpper().Trim() == "ASC")18         sortingDir = "OrderBy";19       else if (sortDirection.ToUpper().Trim() == "DESC")20         sortingDir = "OrderByDescending";21       ParameterExpression param = Expression.Parameter(typeof(T), sortExpression);22       PropertyInfo pi = typeof(T).GetProperty(sortExpression);23       Type[] types = new Type[2];24       types[0] = typeof(T);25       types[1] = pi.PropertyType;26       Expression expr = Expression.Call(typeof(Queryable), sortingDir, types, source.Expression, Expression.Lambda(Expression.Property(param, sortExpression), param));27       IQueryable<T> query = source.AsQueryable().Provider.CreateQuery<T>(expr);28       return query;29     }30     /// <summary>31     /// 分页32     /// </summary>33     /// <typeparam name="T"></typeparam>34     /// <param name="source"></param>35     /// <param name="pageNumber"></param>36     /// <param name="pageSize"></param>37     /// <returns></returns>38     public static IQueryable<T> DataPaging<T>(IQueryable<T> source, int pageNumber, int pageSize)39     {40       return source.Skip((pageNumber - 1) * pageSize).Take(pageSize);41     }42     /// <summary>43     /// 排序并分页 44     /// </summary>45     /// <typeparam name="T"></typeparam>46     /// <param name="source"></param>47     /// <param name="sortExpression"></param>48     /// <param name="sortDirection"></param>49     /// <param name="pageNumber"></param>50     /// <param name="pageSize"></param>51     /// <returns></returns>52     public static IQueryable<T> SortingAndPaging<T>(IQueryable<T> source, string sortExpression, string sortDirection, int pageNumber, int pageSize)53     {54       if (!string.IsNullOrEmpty(sortDirection))55       {56         // IQueryable<T> query = DataSorting<T>(source, sortExpression, sortDirection);57       }58       IQueryable<T> query = source.AsQueryable();59       return DataPaging(query, pageNumber, pageSize);60     }61   }

原标题:Linq 数据排序,分页

关键词:linq

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。