2014-11-06 68 views
13

我正在使用codefirst和odata。我已经建立了我的模型和关系。该查询似乎正在成功。我只在扩展嵌套数据时使用$ expand时遇到问题。我在微软网站上关注了以下link。所以我可以做成功以下

http://myurl.com/odata/catagories?$expand=Product 

现在,如果我决定去更深一层usinng以下查询

http://myurl.com/odata/catagories?$expand=Product/Supplier 

我收到以下错误

在指定的查询URI无效。找到了遍历多个导航属性的路径。请重新修改查询,以便每个扩展路径仅包含类型段和导航属性。

如果您访问上面的链接,评论中的某个人似乎有同样的问题。我可以发誓我得到这个与odata和Web Api的先前版本一起工作。

回答

23

找到这个question后我找到了答案。 @拉马提供了答案。我建议Microsoft在上面列出的链接上更新他们的文档。因此,而不是

http://myurl.com/odata/catagories?$expand=Product/Supplier 

你宁愿使用

http://myurl.com/odata/catagories?$expand=Product($expand=Supplier) 
+1

正式语法是OData的V3,但后来是V4 – Karata 2014-11-07 15:00:00

+2

斜杠符号是OData的V4:HTTP://docs.oasis-open .org/odata/odata/v4.0/errata01/os/complete/part2-url-conventions/odata-v4.0-errata01-os-part2-url-conventions-complete.html#_Toc395267179 – Jerther 2015-02-12 21:10:15

+1

特别糟糕,因为Microsoft声称它正在实施OData v4,OData4客户端库将使用斜杠方法发出请求。微软不应该更新文档,而应更新其嵌套展开的实施。 – 2016-05-16 02:13:10