趣談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 數據服務框架).