过滤OData中的Expanded实体

时间:2013-08-08 10:46:35

标签: wcf-data-services odata

如何在OData中对扩展实体应用过滤条件?

假设我的主实体为home,其字段为

homeId, StateId, CountyID, Address

和子实体state

StateId, StateName

county

CountyID, CountyName

我需要获取具有州名和县名的过滤条件的家庭地址和ID。应该如何成为网址?

3 个答案:

答案 0 :(得分:1)

使用$ expand关键字OData查询应该是这样的:

/ home /?$ filter = state / statename eq'STATE'和county / countyname eq'COUNTY'& $ expand =州,县& $ select = homeId,地址

答案 1 :(得分:0)

我怀疑你的home实体类型实际上没有导航属性。在OData中,如果要连接两个实体,则应创建一个类型与要链接的实体匹配的属性。这些属性(即,类型为实体类型的属性)称为导航属性。如果您希望home拥有关联的state,则您的home类型会有一个名为“State”的属性或类似的属性,并且该属性的类型为state 。考虑面向对象的编程,而不是您将在关系数据库中使用的可连接ID。

同样,如果要将home实体连接到county实体,home应该具有类型为county的属性。一旦你有了名为“州”和“县”的导航属性,eoghank的回答应该适合你。

答案 2 :(得分:0)

我有同样的问题,我使用链接两个实体的关系模式,但即便如此,只能过滤或选择扩展实体的主键。我不知道如何调用不是主键的不同字段。 请参阅以下问题:Question