2013-08-06 3 views
0

USERS 컬렉션에는 USERGROUPS 탐색 속성이 있습니다.OData 탐색 속성에서 필터링 할 수 있습니까?

사용자는 /api/Users?$expand=USERGROUPS을 통해 액세스합니다.

사용자 그룹 탐색 속성 ID를 포함하고 내가 좋아하는 뭔가가 UserGroups.Id으로 필터링하고 싶습니다 : 궁극적으로 내가 특정 그룹 ID 값을 필터링 할 수 있도록하고 싶습니다

/api/Users?$expand=USERGROUPS&$filter=startswith(USERGROUPS/ID,'a')

.

감사합니다.

답변

9

사실 OData V3은 any/all 연산자와 비슷한 것을 지원합니다. 이 기능은 하나로, OData V3에서는 있도록 지원되는지,

/api/Users?$filter=USERGROUPS/any(usergroup: usergroup/ID eq 'a') 

주하지만 : 그래서 예를 들어, 당신은 같을 것 '은'쿼리 ID로 사용자 그룹에 속한 모든 사용자를 검색하려면 서버에서이를 활성화해야합니다.

+0

내 스택이 MVC이므로 WebAPI, OData는 내가 필요한 것을 수행 할 것인가? https://www.nuget.org/packages/Nivot.WCFDataServicesToolkit/? OData - pre Nuget 설치가 있습니다. – ElHaix

+0

지정한 구문에 $ expand = USERGROUPS 옵션이 없습니다. USERGROUPS 탐색 속성을 추가하는 데 필요한 것이 아닙니까? – ElHaix

+0

사실 지금 구문을 시험해 보면 완벽하게 작동합니다. 정확히 내가 찾고있는 것입니다. 여전히 OData 문법을 알고 & 고맙습니다. – ElHaix

0

- - 수정 됨 처음

, 나는 내 대답 here을 발견 믿는다

중 하나로, OData는 컬렉션

이 탐색 속성에 대한 필터를 지원하지 않습니다 내 데이터 집합에서 UserGroups는 컬렉션이므로이 속성에서 필터를 수행 할 수 없습니다.

HOWEVER 위의 구문과 OData v3을 사용하면이 방법이 완벽하게 작동합니다.

관련 문제