How to apply filtering conditions on expanded entities in OData ?
Suppose I have master entity as home
having fields
homeId, StateId, C
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
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.
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