如何使用LINQ(使用查询或方法语法)计算同一车辆名称的汽车总数...?我的表名“Cars”如下所示:
CarId CarName Color Status
1 Volvo Red 2
2 Toyota Black 1
3 Volvo White 5
4 Ford Blue 3
5 Toyota Silver 5
我想要这样的结果(汽车名称和状态总结):
Volvo 7
Toyota 6
Ford 3
在这个结果中,我有7辆Volov,6辆丰田和3辆福特。
我应该如何形成它以获得我正在寻找的正确结果?
我试过了
[HttpGet]
public async Task<ActionResult> GetSumOfCars()
{
using (context)
{
return (PartialView("_CarList", await context.Cars.GroupBy(m =>m.CarName).Count????.ToListAsync()));
}
}
或LINQ(使用查询语法)
var _Results = from Cars in ???
Count(Status)
groupedby CarName
select Status;
但是给我错误的结果。 如果你们能帮助我,我将不胜感激。
答案 0 :(得分:2)
您的查询的分组是正确的。
从组中选择计数通常会附带一个匿名类:
return PartialView(
"_CarList",
await context.Cars
.GroupBy(m =>m.CarName)
.Select(g => new { CarName = g.Key, Count = g.Sum(c => c.Status) })
.ToListAsync()
);
答案 1 :(得分:1)
from car in context.Cars
group car by new { car.CarName } into carGrouping
select new {
Name=carGrouping.Key,
Count = carGrouping.Count()
};