包含統一 URI 的簡單資料定址配置 (ADO.NET 資料服務架構)
ADO.NET 資料服務架構會實作定址配置,而這項配置會使用 URI 來找出資料。Entity Data Model 的實體關聯性模式可透過在實體集中邏輯分組的實體,將資料組織成實體和關聯。這些模式反映在 URI 定址配置中。
為了依照範例描述此系統,下列範例將使用客戶追蹤服務。所有 Customer
實體都由下列 URI 定址。
http://myserver/data.svc/Customers
此 URI 的 /Customers
區段會指向中繼資料中指定的 Customer
實體集。ADO.NET 資料服務架構中繼資料相當於 EDM 中的概念結構描述。Customers
實體集在邏輯上包含 Customer
實體類型的所有執行個體 (Instance)。
在這個語法中,下列 URI 會擷取索引鍵屬性 (定義於中繼資料內) 具有 'ALFKI' 值的單一 Customer
實體。
http://myserver/data.svc/Customers('ALFKI')
實體和關聯
中繼資料會描述實體類型的結構以及實體之間的關聯。ADO.NET 資料服務架構會運用這項資訊來提供關聯周遊的機制。例如,如果資料服務中的每個 Customer
實體都具有相關聯的一組 Orders
,下列 URI 就代表與 Customer
相關聯而且主索引鍵具有 'ALFKI' 值的銷售訂單集合。
http://myserver/data.svc/Customers('ALFKI')/Orders
您可以個別定址 Customer
實體的屬性。例如,下列 URI 代表具有索引鍵 'ALFKI' 之 Customer
實體的 ContactName
:
http://myserver/data.svc/Customers('ALFKI')/ContactName
除了以索引鍵為基礎的查詢以外,您可以在定址配置中加入簡單述詞 (Predicate)。這樣做可讓您根據實體的屬性來選取資料集,例如具有索引鍵 'ALFKI' 之 Customer
目前使用中的 Orders
集合。這項資料是透過下列 URI 來擷取:
http://myserver/data.svc/Customers('ALFKI')/Orders?$filter=Active eq true
用於上述範例中的 $filter
運算子也可以搭配字串、數學或日期函式使用。下列 URI 代表 Customer
'ALFKI' 在 2007 年所建立之使用中訂單的集合:
http://myserver/data.svc/Customers('ALFKI')/Orders?$filter=
Active eq true and (year(OrderDate) eq 2007)
如果 Orders
具有其他相關的實體,此 URI 可能會繼續向下鑽研關聯圖形、周遊關聯,以及篩選每個結果集。
展示控制資訊
ADO.NET 資料服務 URI 也可以在查詢字串中加入排序資料的資訊。網際網路應用程式的一般需求包括資料分頁以及按照屬性排序。下列 URI 列出依照日期排序的 Orders
實體:
http://myserver/data.svc/Customers('ALFKI')/Orders?$filter=
Active eq true&$orderby=OrderDate
分頁結果是透過結合 $skip
和 $top
參數完成的。在客戶的清單中,編號 31-41 是透過下列 URI 取得的:
http://myserver/data.svc/Customers?$skip=30&$top=10
GET、PUT、POST 和 DELETE
上述範例中的語法可用於 HTTP GET 要求中,以便擷取實體和實體的集合。為了更新實體或關聯性,ADO.NET 資料服務會使用 HTTP PUT 語法。同樣地,HTTP POST 語法可用於建立新的實體,而 HTTP DELETE 語法可用於從儲存區中刪除實體。如需詳細資訊,請參閱 ADO.NET 資料服務的用戶端應用程式。
另請參閱
概念
REST 服務和語意 (ADO.NET 資料服務架構)
一般 HTTP 需求 (ADO.NET 資料服務架構)