分组依据后,使用方法语法在 LINQ 中丢失列

Column getting lost in LINQ with Method Syntax after group by

我对 LINQ 还很陌生,正在努力弄明白。我有以下声明:

Context.dataset1
    .Join(
        Context.dataset2, 
        r => r.ID, o => o.ID, 
        (r, o) => new  { PartID = r.PartID, Quantity = r.Quantity1 - r.Quantity2, Date = o.Date })
    .GroupBy(
        column => new { column.Date }, 
        (key, group) => new {Date = key.Date, Quantity = group.Sum(g => g.Quantity) })
    .Where(x => x.Quantity > 0);

return 数据集如下所示

| Date          | Quantity |
| ------------- | ---------|
| 2022-01-01    | 333      |
| 2022-01-02    | 444      |
| 2022-03-03    | 444      |

我希望它看起来像

| PartID |          Date | Quantity |
|--------| ------------- | ---------|
|1       | 2022-01-01    | 333      |
|1       | 2022-01-02    | 444      |
|2       | 2022-03-03    | 444      |

基本上,当我执行 groupby 时,我似乎无法访问 PartId 列,因为我没有在 groupby 中指定它。我不确定如何在不按我不想做的分组的情况下让它出现。 任何帮助都会很棒。谢谢

如果同一日期存在两个不同的零件 ID 怎么办?它会显示什么零件编号?如果您真的想要零件 ID,则需要将零件 ID 包含在分组依据中。例如:

column => new { column.PartID, column.Date }

这意味着如果同一日期有多个零件 ID,则该日期的行数与不同零件 ID 的行数相同。根据您的评论,这似乎是您所追求的。