博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EF-简化排序
阅读量:7179 次
发布时间:2019-06-29

本文共 2407 字,大约阅读时间需要 8 分钟。

respository.GetPaged
(out count, m => m.LoginName.Contains("a"),"LoginName asc,LoginNum desc", 1, 20); public IList
GetPaged
(out int total, Expression
> filter = null, Func
, IOrderedQueryable
> orderBy = null, int index = 1, int size = 20) where TEntity : class { int skipCount = (index - 1) * size; var query = Get(filter, orderBy); total = query.Count(); query = skipCount > 0 ? query.Skip(skipCount).Take(size) : query.Take(size); return query.ToList(); } public IList
GetPaged
(out int total, Expression
> filter = null, string orderBy = null, int index = 1, int size = 20) where TEntity : class { int skipCount = (index - 1) * size; var query = Get(filter, orderBy); total = query.Count(); query = skipCount > 0 ? query.Skip(skipCount).Take(size) : query.Take(size); return query.ToList(); }public static class QueryExtensions { public static IQueryable
OrderBy
(this IQueryable
source, string sortExpressions) { if (source == null) { throw new ArgumentNullException("source"); } string sortDirection = String.Empty; string propertyName = String.Empty; sortExpressions = sortExpressions.Trim(); string[] sorts = sortExpressions.Split(','); for (int i = 0; i < sorts.Length; i++) { string sortExpression = sorts[i]; int spaceIndex = sortExpression.Trim().IndexOf(" "); if (spaceIndex < 0) { propertyName = sortExpression; sortDirection = "ASC"; } else { propertyName = sortExpression.Substring(0, spaceIndex); sortDirection = sortExpression.Substring(spaceIndex + 1).Trim(); } if (String.IsNullOrEmpty(propertyName)) { return source; } ParameterExpression parameter = Expression.Parameter(source.ElementType, String.Empty); MemberExpression property = Expression.Property(parameter, propertyName); LambdaExpression lambda = Expression.Lambda(property, parameter); string methodName = string.Empty; if (i == 0) { methodName = (sortDirection.ToUpper() == "ASC") ? "OrderBy" : "OrderByDescending"; } else { methodName = (sortDirection.ToUpper() == "ASC") ? "ThenBy" : "ThenByDescending"; } Expression methodCallExpression = Expression.Call(typeof(Queryable), methodName, new Type[] { source.ElementType, property.Type }, source.Expression, Expression.Quote(lambda)); source = source.Provider.CreateQuery
(methodCallExpression); } return source; } }

转载于:https://www.cnblogs.com/chenmfly/p/6363829.html

你可能感兴趣的文章
SqlServer时间戳与普通格式的转换
查看>>
转:关于腾讯bugly崩溃的android so符号表使用
查看>>
集成支付宝后出现LaunchServices: ERROR: There is no registered handler for URL scheme alipay
查看>>
Http和Socket详解
查看>>
iOS 多线程开发之OperationQueue(二)NSOperation VS GCD
查看>>
LeetCode - Trapping Rain Water
查看>>
Codeforces 437C The Child and Toy(贪心)
查看>>
蓝桥杯 大臣的旅费
查看>>
hql中不能写count(1)能够写count(a.id)
查看>>
Atitit。Time base gc 垃圾 资源 收集的原理与设计
查看>>
还是态度问题
查看>>
判断记录是否存在的通用方法
查看>>
sift算法c语言实现
查看>>
报表中的Excel操作之Aspose.Cells(Excel模板)
查看>>
(二)STM32中中断优先级理解
查看>>
gulp教程之gulp-imagemin
查看>>
C#中字典集合HashTable、Dictionary、ConcurrentDictionary三者区别
查看>>
【C语言入门教程】3.3 条件控制语句
查看>>
CLGeocoder Error Domain=kCLErrorDomain Code=2
查看>>
Spring中的@scope注解
查看>>