首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法显示对象列表

无法显示对象列表
EN

Stack Overflow用户
提问于 2020-01-23 01:12:55
回答 2查看 56关注 0票数 0

因此,我想要显示一个由多对多关系关联的、具有各种福利的员工列表。现在,我被困在显示与员工相关的福利列表上。它只显示第一项,然后停止。它不仅不会显示其他员工的福利信息,还会显示其他员工的所有信息。

Json:[{"employeeID":1,"employeeName":"Manh","welfareEW":[{"employeeID":1 ...

我的代码:

代码语言:javascript
复制
[HttpGet]
    public IActionResult Get()
    {
        return Json(_db.employee.Include(x => x.welfareEW).ToList());
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-23 09:47:38

您可能会遇到EmployeeWelfare之间的循环引用。

为了防止引用循环,您可以在启动ConfigureServices中使用以下代码:

对于asp.net核心2.2:

代码语言:javascript
复制
services.AddMvc()
    .AddJsonOptions(
        options => options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore
);

对于asp.net核心3.0 (MVC/Web API),只需遵循以下步骤即可使用NewtonsoftJson克服循环引用。

1.安装Microsoft.AspNetCore.Mvc.NewtonsoftJson包(版本取决于您的项目)

代码语言:javascript
复制
Install-Package Microsoft.AspNetCore.Mvc.NewtonsoftJson -Version 3.0.0

2.在startup.cs中添加以下代码

代码语言:javascript
复制
services.AddControllersWithViews().AddNewtonsoftJson(x =>
        {
            x.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
        });
票数 0
EN

Stack Overflow用户

发布于 2020-01-23 06:21:11

似乎,这需要一个where子句来获得每个employeeID的福利。

代码语言:javascript
复制
_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()

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59864956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档