繁体   English   中英

WebAPI JSON 序列化实体框架

[英]WebAPI JSON Serialize Entity Framework

在我的 WebAPI 中,我使用的是 EF。 我目前正在使用 LINQ 语句获取我的数据。

我的 LINQ 是:

var output = _context.CarMakes
.Select(x => new 
{
   id= x.CarId,
   make = x.CarMake,
   year = x.Year,
   status = x.Status 
});

我的数据返回为:

[
     { 
        "id": 1,
        "make": "Ford",
         "year" : 2020,
        "model" : "Focus"
     },
     {
        "id" : 2,
        "make" :"Ford",
        "year" : 1994,
        "model" : "F-150"
     },
     {
       "id" : 3,
       "make" : "Chevy",
       "year" : 2022,
       "model" : "Silverado"
  
     }
   ]
 

我怎样才能将它返回以便将其分组以便我可以在 TreeView 导航菜单中使用它,例如: 我应该对 .NET 代码进行哪些更改?

   Ford:
      2020
        Focus
       1994
         F-150
   Chevy
       2022
         Silverado
      
       

您需要使用 group by 来获得所需的结果,这是一个示例:

var result = _context.CarMakes.GroupBy(x => x.make)
    .Select(g => new {
        Make = g.Key,
        Models = g.GroupBy(x => x.year)
            .Select(y => new {
                Year = y.Key,
                Name = y.Select(z => z.model)
            })
    });

您必须按make商和year字段执行分组,然后 select 所有属于这些分组的汽车。 然后在前端,你可以使用这个返回的数据来做一个嵌套的树视图。

var output = _context.CarMakes
    .Select(x => new
    {
        id = x.CarId,
        make = x.CarMake,
        year = x.Year,
        status = x.Status
    })
    .GroupBy(x => new { x.make, x.year })
    .Select(g => new
    {
        make = g.Key.make,
        year = g.Key.year,
        cars = g.Select(x => new { id = x.id, status = x.status })
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM