ADO.NET 資料服務查詢選項
URI 的查詢選項區段 (如用於定址資源的 URI 格式 (ADO.NET 資料服務架構) 中所述) 會指定兩種資訊類型:
查詢選項和服務作業參數都必須符合下列規則:
您可以在單一 URI 查詢字串中指定任何數目的支援查詢選項。
每個查詢選項都可以存在查詢字串中,與任何其他選項是否存在無關。
查詢選項在 URI 內部的順序不重要。
查詢選項名稱會區分大小寫。
查詢選項值會區分大小寫。
在要求 URI 的查詢字串中,特定系統查詢選項只能出現一次。
語法
下列章節會定義使用<RFC 4234>(英文) 中定義之擴充巴克斯格式 (Augmented Backus-Naur Form) 規格的語法項目來建構 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 保留字元集以外的非空白字元序列)pchar
= 如<RFC 3986>中的定義 (URI 保留字元集以外的非空白字元序列)
每個規則的語意意義和範圍如下:
Service operation:服務作業的名稱。請參閱服務作業參數 (ADO.NET 資料服務架構)。
resourceSet:資源集的名稱。允許的字元會與 Entity Data Model (EDM) 規格中 EntitySet 名稱的允許字元集相符。
Resource type:先前路徑區段所參考之資源集內部資源類型的名稱。允許的字元會與 Entity Data Model (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
索引鍵述詞 (Predicate):‘ALFKI’
導覽路徑的導覽屬性:Orders
查詢選項:$skip=2&$top=2
另請參閱
概念
資源路徑規則和語意 (ADO.NET 資料服務架構)
ADO.NET 資料服務系統查詢選項
服務作業參數 (ADO.NET 資料服務架構)