簡體   English   中英

尚未完成對來自WebApi Core的Include的回復

[英]Not completed response with Include from WebApi Core

我有兩個模型類。

Projects

public class Project
{
    public Project()
    {
    }

    [Key]
    public int Id { get; set; }

    public string Tag { get; set; }

    public string Name { get; set; }

    public string Description { get; set; }

    public virtual List<Task> Tasks { get; set; }
}

Tasks

public class Task
{
    public Task()
    {
    }

    [Key]
    public int Id { get; set; }

    [ForeignKey("Project")]
    public int ProjectId { get; set; }

    public Project Project { get; set; }

    public string Name { get; set; }

    public string Description { get; set; }

    public Priority Priority { get; set; }

    public int? StoryPoints { get; set; }

    public DateTime? StartTime { get; set; }

    public DateTime? EndTime { get; set; }
}

我有簡單的ProjectControllerGetProjects方法:

    [HttpGet]
    public IEnumerable<Project> GetProjects()
    {
        return context.Projects.Include(t => t.Tasks);
    }

但是從這個GET ,我得到的東西看起來像這樣:

在此輸入圖像描述

如您所見, tasks被切斷。

但當我刪除Include

    [HttpGet]
    public IEnumerable<Project> GetProjects()
    {
        return context.Projects;
    }

一切正常:

在此輸入圖像描述

但當然,我們沒有完成任務。

我的問題是,如何使用.Net Core 2.1 WebApi包含Tasks 那是怎么回事?

PS。 我嘗試使用ObjectResponse ToList()IActionResult ,所有工作都相同(切割的任務和項目)。 Postman不能從中得到任何東西,這就是為什么我用鉻來向你展示這個案例

問題解決了。 你需要添加:

services.AddMvc().AddJsonOptions(options => 
    { options.SerializerSettings.ReferenceLoopHandling = 
                                Newtonsoft.Json.ReferenceLoopHandling.Ignore; });

在你的Startup.cs ,一切正常

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM