다음을 통해 공유


ADO.NET 데이터 서비스 쿼리 옵션

리소스 주소 지정을 위한 URI 형식(ADO.NET 데이터 서비스 프레임워크)에 설명된 대로 URI의 쿼리 옵션 세그먼트는 다음과 같은 두 가지 형식의 정보를 지정합니다.

  1. ADO.NET 데이터 서비스 시스템 쿼리 옵션

  2. 서비스 작업 매개 변수(ADO.NET 데이터 서비스 프레임워크)

쿼리 옵션과 서비스 작업 매개 변수는 모두 다음 규칙을 준수해야 합니다.

  • 단일 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 데이터 서비스 프레임워크)