共用方式為


ADO.NET 資料服務查詢選項

URI 的查詢選項區段 (如用於定址資源的 URI 格式 (ADO.NET 資料服務架構) 中所述) 會指定兩種資訊類型:

  1. ADO.NET 資料服務系統查詢選項.

  2. 服務作業參數 (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 資料服務架構)