因此,我想要显示一个由多对多关系关联的、具有各种福利的员工列表。现在,我被困在显示与员工相关的福利列表上。它只显示第一项,然后停止。它不仅不会显示其他员工的福利信息,还会显示其他员工的所有信息。
Json:[{"employeeID":1,"employeeName":"Manh","welfareEW":[{"employeeID":1 ...
我的代码:
[HttpGet]
public IActionResult Get()
{
return Json(_db.employee.Include(x => x.welfareEW).ToList());
}发布于 2020-01-23 09:47:38
您可能会遇到Employee和Welfare之间的循环引用。
为了防止引用循环,您可以在启动ConfigureServices中使用以下代码:
对于asp.net核心2.2:
services.AddMvc()
.AddJsonOptions(
options => options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore
);对于asp.net核心3.0 (MVC/Web API),只需遵循以下步骤即可使用NewtonsoftJson克服循环引用。
1.安装Microsoft.AspNetCore.Mvc.NewtonsoftJson包(版本取决于您的项目)
Install-Package Microsoft.AspNetCore.Mvc.NewtonsoftJson -Version 3.0.02.在startup.cs中添加以下代码
services.AddControllersWithViews().AddNewtonsoftJson(x =>
{
x.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
});发布于 2020-01-23 06:21:11
似乎,这需要一个where子句来获得每个employeeID的福利。
_db.employee.Include(x => x.welfareEW)
.Select(x => new {
employeeID = x.emplyeeID,
emplyeeName = x.employeeName,
welfareEW = x.welfareEW?
.Where(y => y.employeeID == x.employeeID)
.ToList()
})
.ToList()希望这能有所帮助。
https://stackoverflow.com/questions/59864956
复制相似问题