ADO.NET 데이터 서비스 쿼리 옵션
리소스 주소 지정을 위한 URI 형식(ADO.NET 데이터 서비스 프레임워크)에 설명된 대로 URI의 쿼리 옵션 세그먼트는 다음과 같은 두 가지 형식의 정보를 지정합니다.
쿼리 옵션과 서비스 작업 매개 변수는 모두 다음 규칙을 준수해야 합니다.
단일 URI 쿼리 문자열에서 지원되는 쿼리 옵션을 개수에 제한 없이 지정할 수 있습니다.
각 쿼리 옵션은 다른 옵션의 존재 여부에 관계없이 쿼리 문자열에서 지정할 수 있습니다.
URI 내에서 쿼리 옵션이 표시되는 순서는 중요하지 않습니다.
쿼리 옵션 이름은 대/소문자를 구분합니다.
쿼리 옵션 값은 대/소문자를 구분합니다.
특정 시스템 쿼리 옵션은 요청 URI의 쿼리 문자열에서 한 번만 나올 수 있습니다.
구문
다음 단원에서는 RFC 4234에 정의된 보강된 Backus-Naur 형식 사양의 구문 요소를 사용하여 ADO.NET 데이터 서비스 URI를 생성하기 위한 규칙 집합을 정의합니다. ADO.NET 데이터 서비스 URI는 서비스 루트, 리소스 경로 및 쿼리 옵션의 세 부분으로 이루어지며, 이 세 부분이 모여 리소스의 주소를 지정하는 URI를 구성합니다.
ADO.NET_DataService_URI = "http://" serviceRoot [ resourcePath ["?" queryOptions ] ]
serviceRoot = host [ ":" port ] [*( "/" segment-nz )]
resourcePath = "/" resourceSet | serviceOperation [ navPath ]
navPath = ("("keyPredicate")" [ navPath_np / propertyPath / propertyPath_ct ] )
navPath_np = "/" resourceNavigationProperty [ navPath ]
propertyPath = "/" resourceProperty [ "/$value" ]
propertyPath_ct = 1*("/" resourceComplexType) [ propertyPath ]
keyPredicate = 1*DIGIT / ("’" 1*unreserved "’") / 1*(HEXDIG HEXDIG) ["," keyPredicate]
//NOTE: strings, GUIDs, and dates are enclosed in quotation marks.
queryOptions = sysQueryOperation / serviceOpParamName *(“&” sysQueryOperation / serviceOpParam)
위의 정의에서는 다음과 같은 RFC 3986 용어를 사용합니다.
DIGIT
= RFC 3986의 정의 사용(0-9)host
= RFC 3986의 정의 사용port
= RFC 3986의 정의 사용segment-nz
= RFC 3986의 정의 사용(URI 예약 문자 집합 이외의 0이 아닌 문자 시퀀스)pchar
= RFC 3986의 정의 사용(URI 예약 문자 집합 이외의 0이 아닌 문자 시퀀스)
각 규칙의 의미와 범위는 다음과 같습니다.
Service operation: 서비스 작업의 이름입니다. 서비스 작업 매개 변수(ADO.NET 데이터 서비스 프레임워크)를 참조하십시오.
resourceSet: 리소스 집합의 이름입니다. 허용되는 문자는 EDM(엔터티 데이터 모델) 사양에서 EntitySet 이름에 대해 허용하는 문자 집합과 동일합니다.
Resource type: 이전 경로 세그먼트에서 참조된 리소스 집합 내의 리소스 형식 이름입니다. 허용되는 문자는 EDM(엔터티 데이터 모델) 사양에서 EntityType 이름에 대해 허용하는 문자 집합과 동일합니다.
Resource property: 경로 세그먼트에서 리소스 형식 또는 리소스 복합 형식의 리소스 속성 이름입니다. 허용되는 문자는 EDM 사양에서 EntityType 속성 이름에 대해 허용하는 문자 집합과 동일합니다.
Resource navigation property: 바로 앞 경로 세그먼트의 리소스 형식에 있는 리소스 탐색 속성 또는 리소스 탐색 링크의 이름입니다. 이전 세그먼트가 리소스 집합인 경우 이 속성은 지정된 리소스 집합 내의 형식에 포함되어야 합니다. 탐색 및 링크 속성에 대한 자세한 내용은 리소스 경로 규칙 및 의미 체계(ADO.NET 데이터 서비스 프레임워크)를 참조하십시오. 허용되는 문자는 EDM 사양에서 탐색 속성에 대해 허용하는 문자 집합과 동일합니다.
System query operation
= "$" query "=" query
이 유형의 구문은$
로 시작되고 URI에서?
다음에 나옵니다. 자세한 내용은 ADO.NET 데이터 서비스 시스템 쿼리 옵션을 참조하십시오.Service Operation Parameter
= query "=" query
이러한 쿼리는 서비스 작업의 매개 변수입니다. 쿼리를 서비스 작업의 입력으로 사용하고 쿼리 결과는 함수의 매개 변수로 사용할 수 있습니다. 자세한 내용은 서비스 작업 매개 변수(ADO.NET 데이터 서비스 프레임워크)를 참조하십시오.
다음 구문에서는 ADO.NET 데이터 서비스 URI의 여러 부분을 보여 줍니다.
http://www.example.com:88/path/service.root.svc/Customers(‘ALFKI’)/Orders?$skip=2&$take=2
URI에는 다음과 같은 부분이 포함됩니다.
서비스 루트: www.example.com:88/path/service.root.svc
호스트: www.example.com
포트: 88
리소스 경로: /Customers(‘ALFKI’)/Orders
리소스 집합: Customers
탐색 경로: (‘ALFKI’)/Orders
키 조건자: ‘ALFKI’
탐색 경로 탐색 속성: Orders
쿼리 옵션: $skip=2&$top=2
참고 항목
개념
리소스 경로 규칙 및 의미 체계(ADO.NET 데이터 서비스 프레임워크)
ADO.NET 데이터 서비스 시스템 쿼리 옵션
서비스 작업 매개 변수(ADO.NET 데이터 서비스 프레임워크)