18

有谁知道如何针对嵌套属性表达 OData $filter?

例如。我有以下 Atom 条目,

<entry>
...
 <m:properties>
...
  <d:RegardingObjectId m:type="Microsoft.Crm.Sdk.Data.Services.EntityReference">
  <d:Id m:type="Edm.Guid">3f3712fd-fc49-e211-8eb8-000c296272c8</d:Id> 
  <d:LogicalName>new_sportsleague</d:LogicalName> 
  <d:Name>Boca</d:Name> 
  </d:RegardingObjectId>

我想过滤那些有关于ObjectId/LogicalName eq 'new_sportsleague' 的条目。

尝试使用“RegardingObjectId/LogicalName”和“RegardingObjectId.LogicalName”,但没有成功。

4

2 回答 2

36

'RegardingObjectId/LogicalName'将是正确的语法。

例如:

http://services.odata.org/v3/OData/OData.svc/Suppliers

返回两个结果,而

http://services.odata.org/v3/OData/OData.svc/Suppliers ?$filter=Address/Street eq 'NE 228th'

只返回一个。

我在 OData 规范中没有看到明确说明使用复杂值的属性进行过滤是否合法的地方,但 WCF 数据服务似乎支持它。其他 OData 实现可能没有。

于 2013-05-15T17:24:37.673 回答
4

使用以下 odata API 示例访问具有过滤器数据的嵌套属性

http://192.168.50.152:50086/odata/StationOperationLogs/?$expand=ProductionStation,ProductionStation/ProductionUnit&$filter=ProductionStation/ProductionUnit/Id eq 2
于 2016-02-25T05:57:34.707 回答