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序列化没有提到这种区别。
我的理解是正确的,还是我错过了什么。任何人都可以提供一些关于上述变化原因的背景知识吗?
非常感谢提前。
埃里克
答案 0 :(得分:0)
此时规范有点不清楚,但是当它表示没有为请求有效负载指定2.0和3.0版本时它意味着什么意味着在请求有效负载中你应该使用1.0版本的有效负载,因为没有新版本定义。 可以插入具有扩展导航属性的新实体,该属性包含实体集合。例如,您可以插入一个新类别以及属于该类别的5个产品。 延迟链接也是可能的,它的作用是将新实体绑定到这些链接引用的现有实体。 但请注意,WCF数据服务当前仅在插入(POST)上支持此功能,它在更新时不支持它(PUT / MERGE /...)。