借助System.Linq.Dynamic, IQueryable根據排序字符串排序


在使用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()方法傳入的是排序字符串

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM