【问题标题】:C# Linq EF Core Ordering the "resulting groups" by substring of group keyC# Linq EF Core 按组键的子字符串对“结果组”进行排序
【发布时间】:2020-03-16 04:47:41
【问题描述】:

我有一个 Ef 核心 linq 查询,我想按“VehicleNo”字符串对记录进行分组,然后按组键的子字符串对结果组进行排序。

var theGroup = Model.CreditSaleMaster.GroupBy(dd => dd.ProductSaleMaster.VehicleNo).OrderBy(d => 
d.Key.Substring(d.Key.Length - 4, 4));

虽然上述代码执行时没有错误,但生成的子实体(如 productsalemaster)返回 null。

我想要实现的是首先使用 Productsalemaster.VehicleNo 对结果进行分组,然后通过车辆编号的最后 4 位数字的子字符串“对结果组进行排序”。

例如,三个车辆编号组按字母顺序生成为 AP012S0222、TR03M2012、TS07R0222。取结果组,然后根据组密钥的最后四位数字(即车辆编号)对组进行排序,以便结果应该是组集合应该像 AP012S0222、TS07R0222、TR03M2012 那样排序。我希望它能解决我的担忧。

感谢任何帮助。

【问题讨论】:

  • 这个问题我不清楚。请同时添加您当前的结果和预期结果。
  • 我已经添加了预期的结果。请见上文。
  • The resulting groups child entities like productsalemaster are returning null. 是什么意思。您可以根据Productsalemaster.VehicleNo 对项目进行分组并对其进行排序,对吗?
  • 这就是问题所在。在车辆编号上对项目进行分组后。我如何按组键对组进行排序?上面的问题描述中提到了该示例。
  • 所以这个.OrderBy(d => d.Key.Substring(d.Key.Length - 4, 4)); 不起作用?

标签: c# entity-framework linq asp.net-core


【解决方案1】:

你应该试试这个

var theGroup = Model.CreditSaleMaster
    .GroupBy(dd => dd.ProductSaleMaster.VehicleNo)
    .Include(ddd => ddd.ProductSaleMaster)
    .OrderBy(d => d.Key.Substring(d.Key.Length - 4, 4));

【讨论】:

  • 我正在对 Razor 视图中的项目进行分组,但出现了 IQueryable 不包含“包含”定义等错误。这不起作用。
猜你喜欢
  • 2014-01-05
  • 2012-10-14
  • 1970-01-01
  • 2023-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多