趣談ADO.NET數據服務框架
框架對于我們的意義就是讓我們的編程更規范更簡單,下面我們就來介紹介紹ADO.NET數據服務框架。ADO.NET實體框架旨在支持以數據為中心的應用程序和服務,并提供平臺用于對數據進行編程,該平臺將抽象級別從邏輯關系級別提升為概念級別。通過使開發人員可以在更高的抽象級別上使用數據,實體框架 支持獨立于任何特定數據存儲引擎或關系架構的代碼。有關更多信息,請參見 實體框架簡介。
#T#實體框架支持 實體數據模型 (EDM) 在存儲和概念級別上定義數據以及這兩個級別之間的映射。它還使開發人員能夠直接對在概念級別上定義為公共語言運行庫 (CLR) 對象的數據類型進行編程。實體框架 提供一些工具,用于基于現有數據庫生成 EDM 和相關 CLR 對象。過去在創建基于對象的數據應用程序和服務時,需要大量數據訪問代碼,而這些工具減少了這些代碼的使用,也使根據現有數據庫創建面向對象的數據應用程序和服務更為快速。
ADO.NET數據服務框架概述
ADO.NET數據服務框架支持可通過標準 Internet 協議 (HTTP) 訪問的數據服務。ADO.NET 數據服務以具象狀態傳輸 (REST) 資源的形式提供數據,可通過 URI 命名約定對這些資源進行標識和尋址。根據實體數據模型 (EDM) 的規范,將數據資源定義為實體和關系。已知的格式(例如 JSON、AtomPub 和 XML)表示為響應 HTTP 謂詞(GET、PUT、POST 和 DELETE)而傳輸的基于文本的數據。
ADO.NET數據服務框架包括用于創建數據服務的服務器 API 和實現查詢和更新(由遠程應用程序執行)的編程上下文的客戶端 API。ADO.NET 數據服務可與許多類型的應用程序一起使用。雖然框架能夠基于實體數據模型 (EDM) 有效地部署數據,但也可以從實現 IQueryable 接口的任何數據源創建 ADO.NET 數據服務。在客戶端上,任何可發送 HTTP 請求的應用程序都能夠與 ADO.NET 數據服務進行交互。
關系數據庫管理系統 (RDBMS) 中的數據可通過對象關系模型進行映射并通過 ADO.NET 數據服務進行部署,但 ADO.NET 數據服務并不要求進行對象關系映射。ADO.NET 數據服務框架可以使用實現 IQueryable 的任何數據源?;?XML 數據源的數據服務、Web 服務、應用程序邏輯和數據訪問技術(例如 LINQ to SQL)都可實現 EDM 架構和使用派生自 LINQ 的查詢機制??蛻舳藨贸绦蛲ㄟ^發送 GET、PUT、POST 和 DELETE 請求與 ADO.NET 數據服務進行交互。數據以腳本環境中使用的開放格式(例如 JSON 和 AtomPub)進行傳輸。公共語言運行庫 (CLR) 應用程序可以引用 .NET 客戶端庫(ADO.NET 數據服務框架),該庫中包括可創建用于數據查詢和更新的編程上下文的類。
創建 ADO.NET數據服務
在ADO.NET數據服務框架中,創建一個支持創建、讀取、更新和刪除操作的數據服務分為三個步驟:
1.創建數據模型。ADO.NET 數據服務將部署一個位于概念數據模型之上的 REST 接口。ADO.NET 數據服務本身支持基于 ADO.NET 實體框架的數據模型。ADO.NET 數據服務還提供一種擴展機制,通過此擴展可利用公共語言運行庫 (CLR) 對象部署數據模型。從 Microsoft .NET Framework 3.5 開始提供的 AsQueryable 方法能夠有效地將 IQueryable<T> 接口添加到實現 IEnumerable<T> 的對象上。通過此新的接口,可以在 .NET Framework 中輕松地基于列表、數組和集合來部署 ADO.NET 數據服務。有關 ADO.NET 數據服務支持的數據模型的更多信息,請參見數據模型(ADO.NET 數據服務框架)。
2.創建數據服務。配置的數據服務可讓數據模型通過 HTTP 協議訪問。也可以指定由服務器強制實施的緩存和授權策略。
3.選擇宿主。ADO.NET 數據服務不直接綁定到網絡套接字,因此不會直接接受 HTTP 請求。相反,它們在現有的基礎結構(例如 Windows Communication Foundation)中運行。有關 ADO.NET 數據服務支持的宿主的更多信息,請參見數據服務宿主(ADO.NET 數據服務框架).