http://services.odata.org/V4/Northwind/Northwind.svc/
Я пытаюсь получить все Customers
, их Orders
и соответствующие Order_Details
сразу и используя вложенную $expand
для этого. Чтобы запросить данные, я использую следующую ссылку: http://services.odata.org/V4/Northwind/Northwind.svc/Customers?$expand=Orders($expand=Order_Details)
Теперь я пытаюсь ограничить данные, используя $select
. Проблема в том, что я не могу найти правильный синтаксис для использования $select
для среднего стола - Orders
. Я могу применить его только к столешнице - Customers
и нижний - Order_Details
как это:
Можно ли использовать $ выбрать также для таблиц между ними, в моем случае для Orders
?
вам действительно нужно, чтобы получить эти данные в виде вложенных объектов ли? По опыту я обнаружил, что в большинстве случаев ** нам нужен агрегированный вид дерева объектов **. Я разработал метод расширения LINQ 'QueryByCube' для построения такого типа запросов, используя протокол OData. Подробнее читайте здесь: [AdaptiveLINQ] (http://www.adaptivelinq.com). – nlips
@nlips Я не могу использовать LINQ, мы все еще ограничены .NET 2.0. Не могли бы вы привести мне пример агрегированного представления? В основном я пытаюсь получить все эти данные с как можно меньшим количеством веб-запросов. – VladL
Я предположил, что использование Northwind.svc является, например. Я предполагаю, что вы разработаете собственные службы OData и используете сервер LINQ. Идея aggegated view заключается в представлении сущности, где каждое поле создается выражением в модели нативного сущности. ** Некоторые поля выражаются как совокупность нескольких элементов **. Например, мы можем получить «общий объем продаж на одного клиента по дате», просто сделав запрос: «MyService.svc? $ Select = CustomerID, OrderDate, TotalSales». – nlips