带有集合导航属性的JSON请求有效负载?

时间:2012-01-26 22:13:31

标签: json collections properties navigation odata

OData JSON协议(任何版本)是否支持包含单个实体(即未批处理)的请求有效内容,该实体包含导航属性,其中navigation属性包含一组延迟条目?

我已经研究了规范,看起来这个没有定义,或者至少没有为版本2和3定义......

  

2.2.6.3.2实体集(作为JSON数组)   “实体集合的JSON表示的语法由语法定义   列在本节中。语法规则“entitySetInJson”定义了   版本1.0可能的实体集合的JSON表示   用于请求和响应有效负载。语法规则   “entitySetInJson2”定义版本2.0和版本3.0 JSON   仅表示响应有效负载的实体集合。   版本1.0和版本2.0之间没有任何变化   版本3.0格式,用于由...定义的请求有效负载   这个规范。“

  

2.2.6.3.10链接   链接集合的JSON表示的语法是   由本节中列出的语法定义。语法规则   “linkCollJson”定义了一个版本1.0的JSON表示   可以在请求和响应中使用的链接集合   有效载荷。语法规则“linkCollJson2”定义版本2.0和   版本3.0 JSON表示响应的链接集合   有效载荷。此规范未定义版本2.0或   用于的链接集合的3.0版JSON表示   请求有效载荷。

对我来说,这说明在OData V1中可以上传一个对象,该对象的URI值归于其集合导航属性,而V2和V3则不可能。 ATOM序列化没有提到这种区别。

我的理解是正确的,还是我错过了什么。任何人都可以提供一些关于上述变化原因的背景知识吗?

非常感谢提前。

埃里克

1 个答案:

答案 0 :(得分:0)

此时规范有点不清楚,但是当它表示没有为请求有效负载指定2.0和3.0版本时它意味着什么意味着在请求有效负载中你应该使用1.0版本的有效负载,因为没有新版本定义。 可以插入具有扩展导航属性的新实体,该属性包含实体集合。例如,您可以插入一个新类别以及属于该类别的5个产品。 延迟链接也是可能的,它的作用是将新实体绑定到这些链接引用的现有实体。 但请注意,WCF数据服务当前仅在插入(POST)上支持此功能,它在更新时不支持它(PUT / MERGE /...)。