2010-12-22 5 views
22

"Person"및 "Addresses"모델에 두 개의 엔터티가 있고 AddressList 탐색 속성을 통해 액세스 할 수있는 특정 Person에 0 개 이상의 주소가있는 경우 OData 쿼리를 작성할 수 있습니까?

"성이 마지막 사람이 Smith이고 주소가 하나 인 사람은 누구입니까?"

여기에 하나의 술어 만 넣을 수 있습니다.

http://localhost:55100/DemographicsDataService.svc/People? $ 필터 = endswith (성, '스미스')

(나는 아직 내가 심지어 두 번째 술어를 처리 할 수있는 $ 필터를 작성할 수 있습니다 확신 아니에요 ..이 경우, 난 가정 "Mary와 함께 시작하는 스미스와 이름으로 끝나는 성"이라는 질문에 대답하려고 시도 함)

답변

44

$ 필터에서 조건자를 확실히 결합 할 수 있습니다. 예를 들어 지원 사업자 및 주변에 대한 자세한 내용은

/People?$filter=endswith(LastName,'Smith') and startswith(FirstName,'Mary') 

등이 페이지를 참조하십시오 http://www.odata.org/documentation/odata-version-2-0/uri-conventions#FilterSystemQueryOption 현재 하나로, OData는 "적어도 하나의 주소를 가진 사람을"질문을 표현할 수있는 방법이 없습니다. 데이터에 따라 첫 번째 기준을 충족하는 모든 인물을 다운로드하고 클라이언트의 주소가있는 사람을 대신 결정할 수 있습니다.

+2

링크가 끊어졌습니다. – AustinT

+0

@Vitek Karas MSFT : 링크를 업데이트 할 수 있습니까? – user2439903