繁体   English   中英

保存具有关系 ID 的一对多实体

[英]Saving one to many entity with relation Id

我需要创建一个具有关系 ID 的实体。 当我尝试保存实体时,它已正确保存。 但是当我从数据库中读取时,这是错误的

楷模:

public class Food
{
    public long Id { get; set; }
    
    [MaxLength(255)]
    public string Name { get; set; } = "";
    
    public long? MenuId { get; set; }
    public Menu Menu { get; set; }

}

public class Menu
{
    public long Id { get; set; }
    
    [MaxLength(255)]
    public string Name { get; set; } = "";
    
    public ICollection<Food> Foods { get; set; }
}

控制器:

[HttpGet]
public async Task<ActionResult<IEnumerable<Food>>> Getfoods()
{
    return await _context.Foods.ToListAsync();
}

[HttpPost]
public async Task<ActionResult<Food>> PostFood([FromBody] Food food)
    {
        var menu = await _context.Menus.FindAsync(food.MenuId);
        food.Menu = menu;
        
        _context.Entry(food).State = EntityState.Added;
        // await _context.Foods.AddAsync(food);
        await _context.SaveChangesAsync();

        return CreatedAtAction(nameof(GetFood), new { food.Id }, food);
    }

食品实体:

{
  "name": "food1",
  "menuId": 1
}

我的帖子 controller 返回了我想要的内容:

{
  "id": 1,
  "name": "food1",
  "menuId": 1,
  "menu": {
           "id": 1,
           "name": "menu1",
           "foods": []
          }
}

但是当我拿到食物时,菜单是 null:

[
  {
    "id": 1,
    "name": "food1",
    "menuId": 1,
    "menu": null
  }
]

我忘记添加.Include到 GetFoods Controller

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM