2014-07-18 1 views
1

OData V4를 ASP WebApi와 함께 사용하고 있습니다. OData의 새 버전 (예 : http://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part2-url-conventions.html - 예제 90)으로 확장 된 컬렉션을 필터링 하겠지만 필자의 경우 필터 옵션은 효과가 없습니다.OData V4 - 확장 및 옵션 (필터, 위쪽 등)

또한 Nortwhind 서비스와 TripPin 서비스에서 동일한 작업을 시도했습니다. TriPin 서비스에서는 작동하지만 Northwind 서비스에서는 작동하지 않습니다. 여기

, 내가 사용하는 요청 :

내 서비스 : API/중 하나로, OData/고객 (19,037) $ = 수주 확대 ($ 필터 = ID + EQ + 1796) ->?

Northwind를 서비스를 작동하지 않습니다? http://services.odata.org/V4/Northwind/Northwind.svc/Customers $ = 주문을 확장 ($ 필터 = OrderID를 + EQ + 10,643) ->작동하지 않습니다

? 617,451,515,

먹은 서비스 : http://services.odata.org/V4/TripPinServiceRW/People $ = 여행을 확장 ($ 필터 = TripId + EQ + 1001) - 당신의 도움을 위해>합니까 일

감사합니다.

+0

그냥 알기 쉽습니다. Northwind Service는 WCF 데이터 서비스를 사용하여 구현되며 TripPin은 ODL을 사용하여 직접 구현됩니다. – QianLi

+0

어떤 경우에는'$ expand' 연산자를 사용하여 집계 측면에서 OData 제한 사항을 우회합니다. 이런 종류의 필요를 위해 표준 OData 연산자를 통해 집계 쿼리를'$ select'와'$ filter'로 노출 할 수있는 내 제품 [AdaptiveLINQ] (http://www.adaptivelinq.com)을 사용할 수 있습니다. – nlips

답변

1

이것은 현재 지원하지 않는 기능입니다.

근본 원인은 $ expand를 변환하는 동안 인라인 $ 필터가 무시된다는 것입니다.

확인 방법 SelectExpandBinder.cs의 "GetPropertiesToExpandInQuery"다른 옵션은 무시되는 동안 https://aspnetwebstack.codeplex.com/SourceControl/latest#src/System.Web.OData/OData/Query/Expressions/SelectExpandBinder.cs

expandItem.SelectAndExpand이 반환됩니다.

이제 $ expand 내에서만 $ select 및 $ expand를 사용하십시오.

이전에 문제를 해결하는 방법을 조사했지만 문제가 승인되지 않았기 때문에 진 푸가 리드 팀의 관심을 끌기 위해 열었습니다.

+0

문제는 이미 열려 있습니다 (https://aspnetwebstack.codeplex.com/workitem/2046). 도와 주신 Jinfu, Zhao에게 감사드립니다. – nboukeffa