分组依据后,使用方法语法在 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 的行数相同。根据您的评论,这似乎是您所追求的。
我对 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 的行数相同。根据您的评论,这似乎是您所追求的。