0
使用OData标准可以通过发送新集合来替换集合吗? 场景: person对象包含一个列表Address对象。我想用新的集合替换Address集合。 PUT人(1)/地址 [{“city”:“X”,“country”:“US”},{“city”:“Y”,“country”:“US”}]OData PUT替换集合属性
使用OData标准可以通过发送新集合来替换集合吗? 场景: person对象包含一个列表Address对象。我想用新的集合替换Address集合。 PUT人(1)/地址 [{“city”:“X”,“country”:“US”},{“city”:“Y”,“country”:“US”}]OData PUT替换集合属性
这是不可能的(至少对于ODATAv3来说),因为默认路由模板不期望在关键部分之后的段。
但是你应该可以添加一个ODATA动作来完成你想要达到的目标。然后,您的操作定义可能与此类似:
var action = builder.Entity<Person>()
.Action("Addresses")
.Returns<bool>();
action.Parameter<Collection<CityCountryPair>>("data");
类型CityCountryPair
将包含你想改变你的属性定期DTO。确保此类型也在Odata中注册为EntitySet,或者仅使用基本类型的普通映射/字典。
到ODATA行动的实际通话将随后类似于此:
POST http://www.example.com/api/YourEndpoint/Persons(42)/Addresses
Content-Type: application/json
{
"data" :
[
{ "city" : "Berne" , "country": "CH" },
{ "city" : "Y" , "country": "CH" }
]
}
如果你想发送更复杂的数据类型,你仍然可以求助于客户JSON解串器和覆盖默认一个或使用毕竟是一个自定义模型绑定器。
谢谢。 ODATA行动帮助获得我想要的东西。 –
很高兴听到这个消息。还有其他问题需要澄清吗?否则,您可以将我的答案标记为“已接受”的答案。 –