Как выполнить расширение ODATA в LinqPad
Я использую LINQPad для подключения к службам ODATA в локальной организации CRM, и я не знаю, как выполнять "соединения" или пересекать отношения с помощью LINQPad.
вот мой URL
OrganizationData.svc/New_locationSet?$select=new_state_new_location/new_Region$expand=new_state_new_location
, который работает в браузере. Вот что я делаю в LINQPad:
from l in new_locationSet
from s in l.new_state_new_location
select s.new_Region
но я получаю сообщение об ошибке:
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'.
какие идеи? Я обнаружил, что документация Linqpad OData крайне отсутствует...
1 ответов
вам просто нужно проецировать то, что вы хотите расширить, например:
from p in Products
select new {p.Name, CategoryName = p.Category.Name}
или
Products.Select(p => new { p.Name, CategoryName = p.Category.Name})
даст
http://services.odata.org/(S(readwrite))/OData/OData.svc/Products()?$expand=Category&$select=Name,Category/Name
на вкладке журнала запросов LinqPad.