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

问题描述 投票:2回答:1

这可以从不同的城市组织汽车状态吗?我想使用LINQ(使用查询或方法语法)计算同一车名的汽车总数。我的表名“Cars”看起来像下图:我认为我已经有问题如何创建viewmodel并获得部门名称....然后制定LINQ代码... enter image description here

试图这样做,但错误的结果:我试图做以下但是给我错误的结果

    public class Car
    {
        public int Id { get; set; }
        public string CarName { get; set; } 
        public int DeptId { get; set; }
        public int Status { get; set; }
    }

    public class Department
    {
        public int DeptId { get; set; }
        public string DeptName { get; set; }

    }

    public class CarViewModel
    {
        public string CarName { get; set; } ??? // Is this right?
        public Department DeptName { get; set; }
        public int Status { get; set; }
    }




 [HttpGet]
        public async Task<ActionResult> GetTotalCars()
        {
            using (context)
            {

                 var summary = (from c in context.Cars
                  group c by new { c.CarName, c.DeptId } into grp
                  join d in context.Departments on grp.Key.DeptId equals d.Id
                  select new CarViewModel { CarName = grp.Key.CarName, 
                                            DeptName =  d.DeptName, 
                                            Status = grp.Sum(s => s.Status) })
        .ToListAsync();

                return await summary;

            }

        }

如果你们能帮助我,我将不胜感激。

c# asp.net asp.net-mvc linq
1个回答
1
投票

根据您的视图模型提示,您可以通过以下方式获取每个车名和每个部门的总计数:

 var summary = (from c in Cars
                  group c by new { c.CarName, c.DeptId } into grp
                  join d in Departments on grp.Key.DeptId equals d.Id
                  select new CarViewModel { CarName = grp.Key.CarName, 
                                            DeptName =  d.DeptName, 
                                            Status = grp.Sum(s => s.Status) })
                .ToList();
© www.soinside.com 2019 - 2024. All rights reserved.