With the help of System. Linq. Dynamic, IQueryable sorts sorted strings,
When using Entity Framework, if there are multiple sorts, OrderBy (OrderByDescending) and ThenBy (ThenByDescending) are required)
If you want to sort by Name in ascending order and then by Id in descending order, then:
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); }}
Using System. Linq. Dynamic
First, you must reference System. Linq. Dynamic in the project. You can use Nuget to add references.
Introduce the namespace System. Linq. Dynamic
using System.Linq.Dynamic;
Modify the code above,
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); }}
The OrderBy () method imports a sort string.