/// <summary>
/// 排序
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="source"></param>
/// <param name="sortExpression"></param>
/// <param name="sortDirection"></param>
/// <returns></returns>
public static IQueryable<T> DataSorting<T>(IQueryable<T> source, string sortExpression, string sortDirection)
{
string sortingDir = string.Empty;
if (sortDirection.ToUpper().Trim() == "ASC")
sortingDir = "OrderBy";
else if (sortDirection.ToUpper().Trim() == "DESC")
sortingDir = "OrderByDescending";
ParameterExpression param = Expression.Parameter(typeof(T), sortExpression);
PropertyInfo pi = typeof(T).GetProperty(sortExpression);
Type[] types = new Type[];
types[] = typeof(T);
types[] = pi.PropertyType;
Expression expr = Expression.Call(typeof(Queryable), sortingDir, types, source.Expression, Expression.Lambda(Expression.Property(param, sortExpression), param));
IQueryable<T> query = source.AsQueryable().Provider.CreateQuery<T>(expr);
return query;
}

最新文章

  1. Lambda 表达式递归用法实例
  2. (转)UIWebView全部API学习
  3. (转)Java并发编程:volatile关键字解析
  4. shell ulimit -n
  5. (转载)word-wrap,word-break,white-space,text-overflow的区别和用法
  6. Oracle的substr函数简单用法
  7. 组策略彻底解决windows 2003 终端数
  8. 【用PS3手柄在安卓设备上玩游戏系列】谈安卓游戏对手柄的支持
  9. Linux 软链接和硬链接的理解与学习
  10. 【百度地图API】建立全国银行位置查询系统(一)——如何创建地图
  11. linux shadowsocket 安装和启动
  12. fiddler 一些不为人知的功能
  13. DiscuzX2.5,X3.0,X3.1,X3.2完整目录结构【模板目录template】
  14. HYSBZ1036-树链剖分-点权
  15. python第三十五天-----作业完成--学校选课系统
  16. static extern
  17. Spring Batch 基本的批处理指导原则
  18. VSS源代码管理器运行代码分析工具的命令
  19. 启动tomcat的时候爆出如下错误
  20. JavaScript Array 对象方法

热门文章

  1. excel导入数据库iis设置
  2. JavaScript引擎的工作原理
  3. 编写Qt Designer自定义控件(一)——如何创建并使用Qt自定义控件
  4. iOS之AVPlayer的简单应用
  5. Mysql+keeplived+lvs
  6. C++ 全排列函数 nyoj 366
  7. eclipse 好用的快捷键
  8. 谨以此错误警醒自己---java.lang.ClassNotFoundException:
  9. 20151221jquery学习笔记---日历UI
  10. NET环境下的未处理异常(unhandled exception)的解决方案