我對 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);
回傳資料集如下所示
| 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 中指定它。我不知道如何讓它出現而不按我不想做的分組。任何幫助都會很棒。謝謝。
uj5u.com熱心網友回復:
如果同一日期存在兩個不同的零件 ID 怎么辦?它會顯示什么零件編號?如果你真的想要零件 ID,那么你需要在你的 group by 中包含零件 ID。例如:
column => new { column.PartID, column.Date }
這意味著如果您在同一日期有多個部件 ID,則該日期的行數將與具有不同部件 ID 的行數一樣多。根據您的評論,這似乎是您所追求的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/479116.html
