http://services.odata.org/V4/Northwind/Northwind.svc/
Próbuję uzyskać wszystkie Customers
ich Orders
i odpowiadające Order_Details
na raz i przy użyciu zagnieżdżony $expand
do tego. Aby wysłać zapytanie do danych, którego używam, należy użyć następującego linku: http://services.odata.org/V4/Northwind/Northwind.svc/Customers?$expand=Orders($expand=Order_Details)
Teraz próbuję ograniczyć dane przy użyciu $select
. Problem polega na tym, że nie mogę znaleźć poprawnej składni do użycia w środkowej tabeli - . Mogę zastosować go tylko do górnej tabeli - Customers
i dolnej jednej - Order_Details
tak:
Czy jest możliwe aby użyć $ wybrać również dla tabel pomiędzy, w moim przypadku dla Orders
?
Czy naprawdę trzeba uzyskać te dane jako zagnieżdżonych obiektów? Z doświadczenia odkryłem, że w większości przypadków ** potrzebujemy zagregowanego widoku drzewa obiektów **. Opracowałem metodę rozszerzenia LINQ 'QueryByCube' do budowania tego rodzaju usług, które można wysyłać za pomocą protokołu OData. Czytaj więcej tutaj: [AdaptiveLINQ] (http://www.adaptivelinq.com). – nlips
@nlips Nie mogę używać LINQ, nadal jesteśmy ograniczeni do .NET 2.0. Czy mógłbyś podać mi przykład zbiorczego widoku? Zasadniczo próbuję uzyskać wszystkie te dane za pomocą jak najmniejszej ilości żądań internetowych – VladL
Zakładam, że użycie Northwind.svc jest na przykład. Myślę, że rozwiniesz własne usługi OData i użyjesz serwera LINQ. Ideą widoku agresywnego jest przedstawienie zestawu jednostek, w którym każde pole jest budowane przez wyrażenie w modelu rodzimej jednostki. ** Niektóre pola są wyrażone jako suma kilku pozycji **. Na przykład, możemy uzyskać _sumową sprzedaż na klienta według daty_poprzez proste złożenie żądania: 'MyService.svc? $ Select = CustomerID, OrderDate, TotalSales'. – nlips