如何使用Entity Framework和REST Web API附加子属性列表

时间:2018-02-16 19:38:56

标签: entity-framework rest asp.net-web-api entity-framework-core

我有一个Customer课程:

public class Customer : BaseEntity
{
    public string Name { get; set; }
    public int Age { get; set; }
    public List<Order> Orders { get; set; }
}

Order班级:

 public class Order : BaseEntity
{
    public DateTime Date { get; set; }
    public int TotalAmount { get; set; }
}

我的CustomerController有一个POST方法,该方法采用Customer对象和Put方法来更新单个客户。

// PUT: api/Customers/5
[HttpPut("{id}")]
public async Task<IActionResult> PutCustomer([FromRoute] int id, [FromBody] Customer customer)
{
    if (!ModelState.IsValid)
    {
        return BadRequest(ModelState);
    }

    if (id != customer.Id)
    {
        return BadRequest();
    }

    _context.Entry(customer).State = EntityState.Modified;

    await _context.SaveChangesAsync();

    return NoContent();
}

最初创建客户时,没有订单。

我应该如何向现有的Customer实体附加订单?

{
"Id": 2,
"Name": "Raas Masood",
"Age": 33,
"orders": [
    {
        "Date": "2/2/2002",
        "TotalAmount": 123
    }
]}

注意:这是考虑Code First Approach。

1 个答案:

答案 0 :(得分:0)

您需要在订单类上添加新属性(CustomerId),并发送带有该Id的订单列表。