OData 版本 4 深插入

OData version4 deep insert

我正在尝试了解如何在 odata v4 中进行深度插入。 Odata v4 规范说深度插入是可能的。但是我已经尝试了几种方法但无法找到解决方案。每当我尝试 post 一个带有导航数据的实体时,它在服务器端被接收为空。 任何人对此都有任何想法。谢谢

不知道你用的是什么服务端。但是,Web API OData 支持 post 具有导航 属性 的实体。

例如,您的控制器中有一个 Post 方法:

[HttpPost]
public IHttpActionResult Post(Customer customer)
{
  int key = _customers.Count();
  customer.Id = key + 1;
  _customers.Add(customer);
  return Created(customer);
}

您可以使用以下示例请求负载在 http://..../odata/Customers 上发出 POST 请求:

User-Agent: Fiddler
Host: localhost:33082
Content-Type: application/json
Content-Length: 134

{
      "Id":9,
       "Name":"Customer #9",
       "Orders":[
        {
          "OrderId":2,"Price":3.3
        }
      ]
}

谢谢。