使用System.Dynamic.Linq.Core在集合中排序

时间:2019-06-04 15:56:18

标签: c# entity-framework-core

我想知道是否有人有尝试使用System.Dynamic.Linq.Core NuGet包在集合中订购集合的经验。

System.Dynamic.Linq.Core

这里是我的示例:我有一个客户集合,每个客户都有一个订单集合,我想根据他们下的任何订单的近期性对客户进行排序。在SQL中,这很容易做到,因为您只需按该字段拼合数据和顺序即可。另外,我不知道他们可能希望对Orders集合中的哪一列进行排序,这就是为什么我要使用动态库的原因。他们可以按OrderTotal,OrderDate等进行订购。

1 个答案:

答案 0 :(得分:0)

像这样吗?

var criteriaName = "OrderDate";
var orderDir = "DESC";
var ans = data.Select($"new(CustomerName,Orders.OrderBy{(orderDir == "DESC" ? "Descending" : "")}({criteriaName}).First().{criteriaName} as Criteria)").OrderBy($"Criteria{" "+orderDir}").Take(10);