第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

ASP .NET Core Webapi 父子關(guān)系?

ASP .NET Core Webapi 父子關(guān)系?

C#
富國滬深 2022-06-18 17:51:33
我在.net core 2.1中處理我的webapi我有兩個模型:public class Project{    [Key]    public int Id { get; set; }    public string Name { get; set; }    public string Description { get; set; }    public ICollection<Task> Tasks { get; set; } //list of tasks}public class Task{    [Key]    public int Id { get; set; }    public string Name { get; set; }    public string Description { get; set; }    [ForeignKey("Project")]    public int ProjectId { get; set; } //project that task is included    public Project Project { get; set; }}和 DbContext:public class TaskManagerDbContext : DbContext{    public TaskManagerDbContext(DbContextOptions<TaskManagerDbContext> options)       : base(options) { }    public DbSet<Project> Projects { get; set; }    public DbSet<Task> Tasks { get; set; }}我做了一個遷移和更新數(shù)據(jù)庫。下一步是制作基于實體框架的具有讀/寫操作的 WebAPI 控制器。我的問題是,為什么當(dāng)我嘗試調(diào)試我的代碼tasks列表時沒有關(guān)聯(lián)到 Project?我嘗試了硬編碼的任務(wù)和項目。一切都很好,當(dāng)我打電話給簡單api/Projects的回應(yīng)時,我得到了"tasks": null。你能幫我在 WebApi 控制器中關(guān)聯(lián)這些信息嗎?控制器看起來像這樣:[Route("api/[controller]")][ApiController]public class ProjectsController : ControllerBase{    private readonly TaskManagerDbContext _context;    public ProjectsController(TaskManagerDbContext context)    {        _context = context; //tasks in projects here are null    }    // GET: api/Projects    [HttpGet]    public IEnumerable<Project> GetProjects()    {        return _context.Projects;    }}其標準控制器由框架生成。我可以通過這種方式很好地獲得項目和任務(wù)(通過生成的控制器)。但項目沒有tasks相關(guān)。如何包含tasks到Project?
查看完整描述

2 回答

?
子衿沉夜

TA貢獻1828條經(jīng)驗 獲得超3個贊

編寫您的GetProjects方法如下:


[HttpGet]

public IEnumerable<Project> GetProjects()

{

    return _context.Projects.Include(p => p.Tasks).ToList();

}

然后為避免在類的方法中Self referencing loop添加以下配置:ConfigureServicesStartup


public void ConfigureServices(IServiceCollection services)

{

    ...


    services.AddMvc()

        .AddJsonOptions(

            options => options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore

        );


    ...

}


查看完整回答
反對 回復(fù) 2022-06-18
?
BIG陽

TA貢獻1859條經(jīng)驗 獲得超6個贊

您可以使用如下所示的包含。您將在項目集合中獲得任務(wù)集合


// GET: api/Projects

    [HttpGet]

    public IEnumerable<Project> GetProjects()

    {

        return _context.Projects.Include(x=>x.Task);

    }


查看完整回答
反對 回復(fù) 2022-06-18
  • 2 回答
  • 0 關(guān)注
  • 133 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號