如何在OData中对扩展实体应用过滤条件?
假设我的主实体为home
,其字段为
homeId, StateId, CountyID, Address
和子实体state
为
StateId, StateName
和county
为
CountyID, CountyName
我需要获取具有州名和县名的过滤条件的家庭地址和ID。应该如何成为网址?
答案 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