LINQ to Entites/IQueryable:对多个字段进行排序

chr*_*ris 2 linq sorting iqueryable

我有以下我想要排序:

IQueryable<Map> list;
list = from item in ctx.MAP
         .Include("C")
         .Include("L")
         .Include("L.DP")
       select item;
return list.OrderBy(m=>(m.L.DP.Name + m.L.Code));
Run Code Online (Sandbox Code Playgroud)

这是有效的,但它按字母顺序排序 - 所以12在9之前出现.(假设代码是一个数字字段)

对此进行排序的最佳方法是什么,因此代码按数字排序?

Tom*_*ana 7

您可能希望使用ThenBy扩展方法能够按多个字段排序;)在您的情况下将是

 return list.OrderBy(m=>m.L.DP.Name).ThenBy(m => m.L.Code);
Run Code Online (Sandbox Code Playgroud)