Url 如何筛选按多个级别展开的Odata查询?

Url 如何筛选按多个级别展开的Odata查询?,url,odata,Url,Odata,我目前正在尝试进行Odata调用,其中我通过一个“多级”扩展属性进行过滤,但是,我在这里找到的任何文档或信息都不能完全涵盖我试图实现的目标。有人知道这是否可以做到,以及如何做到吗 这是为了让我们的用户能够通过测试所在房间的名称过滤他们的测试。我们已经能够通过扩展的单个级别进行过滤,允许用户通过位置的名称过滤他们的测试,但是我们似乎无法在第二个级别上获得正确的语法 对于上下文,我们的测试表链接到链接到房间表的位置表 通过调用以下命令,我们可以在不使用筛选器的情况下查看扩展信息: …/api/Tes

我目前正在尝试进行Odata调用,其中我通过一个“多级”扩展属性进行过滤,但是,我在这里找到的任何文档或信息都不能完全涵盖我试图实现的目标。有人知道这是否可以做到,以及如何做到吗

这是为了让我们的用户能够通过测试所在房间的名称过滤他们的测试。我们已经能够通过扩展的单个级别进行过滤,允许用户通过位置的名称过滤他们的测试,但是我们似乎无法在第二个级别上获得正确的语法

对于上下文,我们的测试表链接到链接到房间表的位置表

通过调用以下命令,我们可以在不使用筛选器的情况下查看扩展信息:

…/api/Tests$expand=Location($select=Id,LocationName;$expand=Room($select=Id,RoomName))

返回:

…{“Id”:19955,“LocationId”:102,“Location”:{“Id”:102,“LocationName”:“TestLocation”,“Room”:{“Id”:8,“RoomName”:“TestRoom”}

但当我们尝试过滤呼叫时,例如:

…/api/Tests$expand=Location($select=Id,LocationName;$expand=Room($select=Id,RoomName))&$filter=contains(Location/Room/RoomName,%27a%27))

我们得到的只是标准:

{"error":{"code":"NotFound","message":"The type 'Edm.String' is not an entity type. Only entity types support $select and $expand.\r\nParameter name: context"}}
当然有一些方法可以从多级扩展中过滤,但我对使用OData有点新手,所以任何帮助都将不胜感激


另外,我相信我们使用的是OData-7.01。

只是在这里回答我自己的问题,因为事实证明我们使用的方法是正确的。 系统在管道的其他区域出现故障