When querying via a derived type e.g.:
odata/BaseEntities(10)/DerivedEntity
The self and edit links (validly) are based on the request URI. However, the returned entity is logically:
odata/DerivedEntity(10)
By changing the link base address numerous complexities are avoided:
1. Caching is improved in consumers and it is easier to see which entities match.
2. Some actions/methods are complex to implement in the base type and may not even be supportable, by coercing the link routes back to the strongly typed forms then consumers will work more effectively without having to implement as much complex logic (particularly with the default controller selection change I've suggested elsewhere)
Comments: This is by design. The suggested link won't even work if you have an action which returns BaseEntities.
odata/BaseEntities(10)/DerivedEntity
The self and edit links (validly) are based on the request URI. However, the returned entity is logically:
odata/DerivedEntity(10)
By changing the link base address numerous complexities are avoided:
1. Caching is improved in consumers and it is easier to see which entities match.
2. Some actions/methods are complex to implement in the base type and may not even be supportable, by coercing the link routes back to the strongly typed forms then consumers will work more effectively without having to implement as much complex logic (particularly with the default controller selection change I've suggested elsewhere)
Comments: This is by design. The suggested link won't even work if you have an action which returns BaseEntities.