如何对 OData 中的扩展实体应用过滤条件?
假设我有主实体作为home
具有字段
homeId, StateId, CountyID, Address
和子实体state
为
StateId, StateName
并且county
作为
CountyID, CountyName
我需要使用带有州名和县名的过滤条件来获取家庭地址和 ID。网址应该如何?
如何对 OData 中的扩展实体应用过滤条件?
假设我有主实体作为home
具有字段
homeId, StateId, CountyID, Address
和子实体state
为
StateId, StateName
并且county
作为
CountyID, CountyName
我需要使用带有州名和县名的过滤条件来获取家庭地址和 ID。网址应该如何?
使用 $expand 关键字 OData 查询应该类似于:
/home/?$filter=state/statename eq 'STATE' 和 County/countyname eq 'COUNTY'&$expand=state,county&$select=homeId, Address
我有同样的问题,我使用链接两个实体的关系模式,但即便如此,也只能过滤或选择扩展实体的主键。我不知道如何调用不是主键的不同字段。请参阅以下问题:问题
我怀疑您的home
实体类型实际上并没有导航属性。在 OData 中,如果您想连接两个实体,您将创建一个类型与您要链接到的实体匹配的属性。这些属性(即类型为实体类型的属性)称为导航属性。如果您想home
拥有一个关联的state
,您的home
类型将有一个名为“State”或类似的属性,并且该属性将是 type state
。想想面向对象的编程,而不是在关系数据库中使用的可连接 ID。
同样,如果要将实体连接到实体,则home
应该具有带类型的属性。一旦您拥有名为“州”和“县”的导航属性,eoghank 的答案应该适合您。county
home
county