我想知道如何在 LINQ 中重写查询,以使用 select 和 group 语句从数据库中获取数据。
身份证 | 项目 | 数量 | 金额 | 日期 |
---|---|---|---|---|
1 | 挂锁 | 2 | 2.00 | 2024年9月4日 |
2 | 螺栓 | 1 | 5.00 | 2024年9月4日 |
3 | 螺栓 | 3 | 15.00 | 2024年4月10日 |
4 | 螺栓 | 1 | 5.00 | 11/04/2024 |
这是我尝试过的。下面的代码实际上从数据库中获取所有记录,但我不知道如何将 select 和 group 语句添加到其中。
[HttpGet]
public object Get()
{
return new { Items = _context.OrderDetail.ToList(), Count = _context.OrderDetail.Count() };
}
}
这就是我所期待的。
项目 | 数量 | 金额 |
---|---|---|
挂锁 | 2 | 2.00 |
螺栓 | 5 | 25.00 |
扳手 | 3 | 5.00 |
需要获得不同的名称以及总数量和总金额。请尝试如下所示。
var result = items
.GroupBy(item => item.Name)
.Select(group => new
{
Name = group.Key,
TotalQty = group.Sum(item => item.Qty),
TotalAmount = group.Sum(item => item.Amount)
});