Filter on Expanded entities in OData

…衆ロ難τιáo~ 提交于 2019-12-01 07:25:32

问题


How to apply filtering conditions on expanded entities in OData ?

Suppose I have master entity as home having fields

homeId, StateId, CountyID, Address

and sub entities state as

StateId, StateName

and county as

CountyID, CountyName

I need to get the home addresses and Ids with a filter condition with state name and county name. How should be the url?


回答1:


Using the $expand keyword OData query should be something like:

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




回答2:


I suspect your home entity type doesn't actually have navigation properties on it. In OData, if you want to connect two entities, you would create a property whose type matches the entity you want to link to. These properties (i.e., properties whose type is an entity type) are called navigation properties. If you want home to have an associated state, your home type would have a property called "State" or something like that, and that property would be of type state. Think of object-oriented programming instead of join-able IDs you would use in a relational database.

Similarly, home should have a property with type county if you want to connect a home entity to a county entity. Once you have navigation properties called "state" and "county", eoghank's answer should work for you.




回答3:


I have the same issue and i use the relational schema that links the two entities but even so only primary keys of expanded entity can be filtered or selected. I don't know how to call a diferent field that's not a primary key. See the following question: Question



来源:https://stackoverflow.com/questions/18124058/filter-on-expanded-entities-in-odata

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!