Problem
In an OData 4 service on Web API, what is the proper way to call nested $expand from a .NET client? We are using the OData Client Generator. Back in the prior WCF Data Services with OData 3 service we could call .Expand("Customers/Orders")
. In Web API with OData 4 we can no longer do so and receive the following should you attempt .Expand("Customers/Orders")
:
The query specified in the URI is not valid. Found a path traversing multiple navigation >properties. Please rephrase the query such that each expand path contains only type >segments and navigation properties.
Workaround
We are able to work around this by calling expand like so: .Expand("Customers($expand=Orders)")
. In non-nested $expand scenarios, I like the lambda support like so .Expand(d => d.Customers)
. Is there a proper way in .NET OData 4 client to call nested expands without the unfortunate magic string of .Expand("Customers($expand=Orders)")
? If not, is there a cleaner string pattern like "Customers/Orders" that would work? Thanks.