在Web API 2.2上使用带有Odata v4.0的$ select和$ expand时出错

时间:2014-11-26 05:56:51

标签: odata asp.net-web-api2 odata-v4

我有一个为OData v4配置的web api 2.2。我希望按ID返回用户,并且仅包含用户所属的用户组ID。当我这样做时

http://localhost/User?$filter=id eq 312&$select=*,userGroups/id&$expand=userGroups

我收到此错误

  

URI中指定的查询无效。找到了一条路径   select子句中的多个导航属性。请改写你的   查询使得每个级别的选择或扩展仅包含   TypeSegments或Properties。

     

在select子句中找到具有多个导航属性的路径。   请重新命名您的查询,以便每个级别仅选择或展开   包含TypeSegments或Properties。

如果我删除",userGruops / id"

,将执行查询

2 个答案:

答案 0 :(得分:3)

您应该像这样编写查询:

http://localhost/User?$filter=id eq 312&$select=*&$expand=userGroups($select=id)

顺便说一句,您还可以删除$select=*段,因为默认情况下,所有非导航属性都包含在响应中。

答案 1 :(得分:0)

Beta 版 API 句柄

https://graph.microsoft.com/beta/users?$select=id,surname&$expand=manager($select=id)