在用Linq查询中,常常需要用到分页功能,因为每次都需要些分页这些功能,于是把分页功能提取出来,不喜大家勿喷,只是贴出来,自觉地很实用。一下贴出核心代码: 1 /// <summary> 2 /// LinqHelper 主要用于数据集,排序 分页等功能 3 ...
在用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
(#换成@)。