I'm using LINQPad to connect to the ODATA services on a local CRM organization and I don't know how to perform "joins" or to traverse relationships using LINQPad.
Here is my URL
OrganizationData.svc/New_locationSet?$select=new_state_new_location/new_Region$expand=new_state_new_location
which works just fine in the browser. Here is what I'm doing in LINQPad:
from l in new_locationSet
from s in l.new_state_new_location
select s.new_Region
but I'm getting an error:
An expression of type 'LINQPad.User.New_state' is not allowed in a subsequent from clause in a query expression with source type 'System.Data.Services.Client.DataServiceQuery<LINQPad.User.New_location>'. Type inference failed in the call to 'SelectMany'.
Any ideas? I've found the LINQPad OData documentation extremely lacking...
You just need to project out what you want to expand, e.g.:
from p in Products
select new {p.Name, CategoryName = p.Category.Name}
or
Products.Select(p => new { p.Name, CategoryName = p.Category.Name})
will yield
http://services.odata.org/(S(readwrite))/OData/OData.svc/Products()?$expand=Category&$select=Name,Category/Name
in LinqPad's Request Log tab.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With