如何使用导航属性更新Web api OData实体?

时间:2016-05-17 17:50:17

标签: c# odata asp.net-web-api2

Entity1有一个Entity2集合作为导航属性。我可以通过扩展的Entity2集合从ODataController成功获取Entity1。但是当我尝试使用ODataController PUT或PATCH方法更新Entity1时,我只能在Entity2的集合为空时才能这样做。否则Delta为空。

public IHttpActionResult Put([FromODataUri] int key, Delta<ClienteleExportTemplate> delta)

有趣的是:当我使用相同ODataController的POST方法时,实体2的嵌套集合中填充了值,我可以成功保存Entity1。 所以问题只出在PUT和PATCH方法中。

这是我对此实体的modelBuilder配置:

modelBuilder.EntitySet<Entity1>("Entity1OData");
modelBuilder.EntitySet<Entity2>("Entity2OData");

我使用$ odataresourse模块为angularJs将值和POST方法作为JSON数组发送给POST和PUT方法。

如何配置Web api 2 ODatav4以支持导航属性更新?

1 个答案:

答案 0 :(得分:1)

目前不支持更新实体关系,作为解决方法,您可以使用$ ref更新实体关系。请参考这里举例:

https://github.com/xuzhg/WebApiSample/tree/eb795e26547555666410a79b88e3930d22479798/WebApiODataSample