计算我的ASP.NET MVC项目中相同产品名称的总和

时间:2017-08-26 09:17:58

标签: sql asp.net-mvc linq asp.net-web-api

如何使用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;

但是给我错误的结果。 如果你们能帮助我,我将不胜感激。

2 个答案:

答案 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()
};