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行動幫助獲得我想要的東西。 –
很高興聽到這個消息。還有其他問題需要澄清嗎?否則,您可以將我的答案標記爲「已接受」的答案。 –