Я пытаюсь понять, как выполнить эквивалент:
select *
from Users u
inner join Comments c on c.UserId = u.Id
where Id = 1569
(псевдонимы таблицы для лучшей читаемости sql)
... в конечной точке OData StackOverflow. Как будет построен этот URL-адрес? Я смотрю документацию для Expand на OData.org, и я подумал бы, что это будет выглядеть примерно так:
https://odata.sqlazurelabs.com/OData.svc/v0.1/rp1uiewita/StackOverflow/Users?$Expand=Comments&$filter=UserId eq 1569
, но это неправильно.
В Linq это будет (я думаю), но Join не поддерживается:
Users.Where(u=>u.Id==1569).Join(Comments, u=>u.Id, c=>c.UserId, (a,b)=>a.Id==b.UserId)
Мне не нужно строго разбираться в Linq, я просто пытаюсь понять, как построить URL-адрес запроса. В принципе, как я могу перевести предикат SQL-соединения на url OData и сделать это за один вызов?