3

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

假设我有主实体作为home具有字段

homeId, StateId, CountyID, Address

和子实体state

StateId, StateName

并且county作为

CountyID, CountyName

我需要使用带有州名和县名的过滤条件来获取家庭地址和 ID。网址应该如何?

4

3 回答 3

1

使用 $expand 关键字 OData 查询应该类似于:

/home/?$filter=state/statename eq 'STATE' 和 County/countyname eq 'COUNTY'&$expand=state,county&$select=homeId, Address

于 2013-08-08T16:08:44.690 回答
0

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

于 2014-02-27T18:01:52.117 回答
0

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

同样,如果要将实体连接到实体,则home应该具有带类型的属性。一旦您拥有名为“州”和“县”的导航属性,eoghank 的答案应该适合您。countyhomecounty

于 2014-02-03T19:17:11.163 回答