【发布时间】:2021-07-07 08:57:38
【问题描述】:
我正在运行一个 ASP.NET Core Web API 项目,并且我有这个具有自引用关联的模型类:
public class VehicleCategory
{
[Key]
public int Id { get; set; }
public string description { get; set; }
[ForeignKey("ParentVehicleCategoryId")]
public int? ParentVehicleCategoryId { get; set; }
[JsonIgnore]
public virtual VehicleCategory ParentVehicleCategory { get; set; }
public virtual IEnumerable<VehicleCategory> subVehicleCategories { get; set; }
}
我已在 EF 中配置所有内容以检索获取所有数据,并将此配置添加到 startup.cs 文件中以防止循环:
services.AddControllers().AddNewtonsoftJson(options =>
options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore
);
问题是当我尝试从数据库中获取所有数据时,我最终得到了这个 json 结果:
[
{
"id": 7,
"description": "description 1",
"parentVehicleCategoryId": null,
"subVehicleCategories": [
{
"id": 9,
"description": "description 2",
"parentVehicleCategoryId": 7,
"subVehicleCategories": null
},
{
"id": 10,
"description": "description 3",
"parentVehicleCategoryId": 7,
"subVehicleCategories": null
}
]
},
{
"id": 9,
"description": "description 2",
"parentVehicleCategoryId": 7,
"subVehicleCategories": null
},
{
"id": 10,
"description": "description 3",
"parentVehicleCategoryId": 7,
"subVehicleCategories": null
}
]
有没有一种方法可以让我只使用代表孩子的数组来获取这些数据:
[
{
"id": 7,
"description": "description 1",
"parentVehicleCategoryId": null,
"subVehicleCategories": [
{
"id": 9,
"description": "description 2",
"parentVehicleCategoryId": 7,
"subVehicleCategories": null
},
{
"id": 10,
"description": "description 3",
"parentVehicleCategoryId": 7,
"subVehicleCategories": null
}
]
},
]
要获取数据,我正在使用此代码:
var test = _raceContext.VehicleCategories
.Include(x => x.subVehicleCategories)
.ToList();
【问题讨论】:
标签: c# .net .net-core entity-framework-core