在使用Entity Framework时,若有多个排序,需要OrderBy (OrderByDescending)再ThenBy (ThenByDescending)

假设需要根据Name升序排序,再根据Id降序排序,则:

using (EFContext<Member> context = new EFContext<Member>())
{
var lst = context.Table.OrderBy(m => m.Name).ThenByDescending(e => e.Id).ToList();
foreach (var item in lst)
{
Console.WriteLine("name:{0}, Id:{1}",item.Name,item.Id);
}
}

借助System.Linq.Dynamic的方式

首先需要在项目中引用System.Linq.Dynamic,可以借助Nuget工具添加引用

引入命名空间System.Linq.Dynamic

using System.Linq.Dynamic;

修改上面的代码,

using (EFContext<Member> context = new EFContext<Member>())
{
var lst = context.Table.OrderBy("Name asc,Id desc").ToList();
foreach (var item in lst)
{
Console.WriteLine("name:{0}, Id:{1}",item.Name,item.Id);
}
}

此处可以看到,OrderBy()方法传入的是排序字符串

借助System.Linq.Dynamic, IQueryable根据排序字符串排序的更多相关文章

  1. 【转】借助System.Linq.Dynamic, IQueryable根据排序字符串排序

    在使用Entity Framework时,若有多个排序,需要OrderBy (OrderByDescending)再ThenBy (ThenByDescending) 假设需要根据Name升序排序,再 ...

  2. System.Linq.Dynamic字符串转委托

    以前一直想着有没有一个方法能够把字符串直接转化成函数的,刚好有需求就找了下,还真有. 微软地址:https://docs.microsoft.com/en-us/previous-versions/b ...

  3. System.Linq.Dynamic 动态查询

    安装 VS->工具栏->NuGet程序管理器,System.Linq.Dynamic 注意: 使用动态查询必须先调用AsQueryable()方法,因为动态扩展仅适用于实现IQueryab ...

  4. System.Linq.Dynamic的使用

    项目中经常用到组合条件查询,根据用户配置的查询条件进行搜索,拼接SQL容易造成SQL注入,普通的LINQ可以用表达式树来完成,但也比较麻烦.有个System.Linq.Dynamic用起来比较方便. ...

  5. System.Linq.Dynamic 和Nhibernate

    var session = NHibernateSessionManager.Instance.GetSession(); "); var staffList = session.Query ...

  6. System.Linq.Dynamic

    http://dynamiclinq.codeplex.com/ 10万回 用动态表达式 0.19s ,普通Lamba 0.02s,效率还可以 /* User: Peter Date: 2016/4/ ...

  7. EF Core中关于System.Linq.Dynamic.Core的使用(转载)

    项目中经常用到组合条件查询,根据用户配置的查询条件进行搜索,拼接SQL容易造成SQL注入,普通的LINQ可以用表达式树来完成,但也比较麻烦.有个System.Linq.Dynamic.Core用起来比 ...

  8. [No000087]Linq排序,SortedList排序,二分法排序性能比较

    using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; ...

  9. 对一串用":"和";"拼接的汉字字符串排序

    近日在项目中遇到一个需求,要求显示的下拉菜单select选项的汉字字符进行排序,项目是前后端分离Ajax交互的,前端页面初始化时请求后端拿到菜单数据.项目中的所有菜单数据均是后端提供的. 场景是后端请 ...

随机推荐

  1. C/C++ -- Gui编程 -- Qt库的使用 -- 使用小写qDebug调试程序

    qDebug作为printf不需要头文件 qDebug()作为cout要使用头文件<QDebug> -----debug.cpp----- -----debug.cpp----- #inc ...

  2. ELK构建MySQL慢日志收集平台详解

    上篇文章<中小团队快速构建SQL自动审核系统>我们完成了SQL的自动审核与执行,不仅提高了效率还受到了同事的肯定,心里美滋滋.但关于慢查询的收集及处理也耗费了我们太多的时间和精力,如何在这 ...

  3. mysql 导出数据到csv文件的命令

    1.导出本地数据库数据到本地文件 mysql -A service_db -h your_host -utest -ptest mysql> select * from t_apps where ...

  4. 在Ubuntu16.04上使用Autofs

    在Solaris上,autofs是默认安装的,可以通过/net/<NFS server>很方便地访问远程的共享目录.但在Linux上(例如Fedora或者Ubuntu),使用autofs则 ...

  5. 在Ubuntu16.04上使用Open Grok

    Open Grok是一个强大的源代码搜索和对照引擎,是Open Solaris的源文件浏览及搜索工具.虽然Open Solaris已经不复存在,但这个工具仍然处于开发与维护之中. 相信我,绝对值得你拥 ...

  6. juqery dragsort使用遇到的问题

    1.destroy时,没给容器加id,不能执行成功--->修改源码如下: if (options == "destroy") { $(this).trigger(" ...

  7. HAProxy Installation and Configuration on CentOS 6.4 to Mitigate The Effects of Abusive Clients--转

    ref:http://thoughts.z-dev.org/2013/05/07/haproxy-installation-and-configuration-on-centos-6-4-to-mit ...

  8. spring 下载地址及相关概念解析

    http://www.springsource.org/download/community Release Candidate(RC)候选版本,用于指软件或操作系统的发布,一般与Debug版本相对应 ...

  9. dev控件ASPxComboBox设置ReadOnly="true"后

    dev控件ASPxComboBox设置ReadOnly="true"后,在后台OnCallback事件中赋值前台不显示

  10. Java常见对象之String

    String类的概述 String 类代表字符串.Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现.字符串是常量,一旦被赋值,就不能被改变. String ...