MSDN 原文出處
https://msdn.microsoft.com/zh-cn/library/27y4ybxw.aspx
.NET Framework 4.6 and 4.5
其他版本
以前,數據處理主要依賴於基於連接的雙層模型。 隨著數據處理越來越多地使用多層體系結構,程序員正在向斷開方法轉換,以便為他們的應用程序提供更好的可伸縮性。
ADO.NET 組件
ADO.NET 3.0 用於訪問和操作數據的兩個主要組件是 .NET Framework 數據提供程序和 DataSet。
.NET Framework 數據提供程序是專門為數據操作以及快速、只進、只讀訪問數據而設計的組件。 Connection 對象提供到數據源的連接。 使用 Command 對象可以訪問用於返回數據、修改數據、運行存儲過程以及發送或檢索參數信息的數據庫命令。 DataReader 可從數據源提供高性能的數據流。 最後,DataAdapter 在 DataSet 對象和數據源之間起到橋梁作用。 DataAdapter 使用 Command 對象在數據源中執行 SQL 命令以向 DataSet 中加載數據,並將對 DataSet 中數據的更改協調回數據源。 有關詳細信息,請參閱.NET Framework 數據提供程序和在 ADO.NET 中檢索和修改數據。
ADO.NET DataSet 是專門為獨立於任何數據源的數據訪問而設計的。 因此,它可以用於多種不同的數據源,用於 XML 數據,或用於管理應用程序本地的數據。 DataSet 包含一個或多個 DataTable 對象的集合,這些對象由數據行和數據列以及有關 DataTable 對象中數據的主鍵、外鍵、約束和關系信息組成。 有關詳細信息,請參閱DataSet、DataTable 和 DataView。
下圖闡釋了 .NET Framework 數據提供程序和 DataSet 之間的關系。
ADO.NET 體系結構
在決定應用程序應使用 DataReader(請參見使用 DataReader 檢索數據)還是應使用 DataSet(請參見DataSet、DataTable 和 DataView)時,應考慮應用程序所需的功能類型。 使用 DataSet 可執行以下操作:
在應用程序中將數據緩存在本地,以便可以對數據進行處理。 如果只需要讀取查詢結果,則 DataReader 是更好的選擇。
在層間或從 XML Web services 對數據進行遠程處理。
與數據進行動態交互,例如綁定到 Windows 窗體控件或組合並關聯來自多個源的數據。
對數據執行大量的處理,而不需要與數據源保持打開的連接,從而將該連接釋放給其他客戶端使用。
如果不需要 DataSet 所提供的功能,則可以通過使用 DataReader 以只進、只讀方式返回數據,從而提高應用程序的性能。 雖然 DataAdapter 使用 DataReader 來填充 DataSet 的內容(請參見從 DataAdapter 填充 DataSet),但使用 DataReader 可以提升性能,因為這樣可以節省 DataSet 所使用的內存,並將省去創建 DataSet 並填充其內容所需的處理。
LINQ to DataSet
LINQ to DataSet 提供對在 DataSet 對象中緩存的數據的查詢功能和編譯時類型檢查。 它使您可以使用一種 .NET Framework 開發語言(例如 C# 或 Visual Basic)來編寫查詢。 有關詳細信息,請參閱LINQ to DataSet。
LINQ to SQL
LINQ to SQL 支持查詢無需使用中間概念模型即可映射到關系數據庫數據結構的對象模型。 每個表均由獨立的類表示,從而使對象模型與關系數據庫架構緊密地耦合在一起。 LINQ to SQL 可將對象模型中的語言集成查詢轉換為 Transact-SQL 並將其發送到數據庫以便執行。 當數據庫返回結果時,LINQ to SQL 將結果轉換回對象。 有關詳細信息,請參閱LINQ to SQL [LINQ to SQL]。
ADO.NET Entity Framework
ADO.NET 實體框架專門用於讓開發人員能夠通過針對概念應用程序模型進行編程(而不是直接針對關系存儲架構進行編程)來創建數據訪問應用程序。 這樣做的目的是減少面向數據的應用程序所需的編碼和維護工作。 有關詳細信息,請參閱ADO.NET 實體框架。
WCF 數據服務
WCF 數據服務 用於在 Web 或 Intranet 上部署數據服務。 這些數據將按照實體數據模型的規范組織成不同的實體和關系。 在此模型上部署的數據可通過標准的 HTTP 協議進行尋址。 有關詳細信息,請參閱WCF 數據服務 4.5。
XML 和 ADO.NET
ADO.NET 利用 XML 的功能來提供對數據的斷開連接的訪問。 ADO.NET 是與 .NET Framework 中的 XML 類一起設計的,它們都是同一個體系結構的組件。
ADO.NET 和 .NET Framework 中的 XML 類集中於 DataSet 對象中。 無論 XML 源是文件還是 XML 流,都可以用其中的數據來填充 DataSet。 無論 DataSet 中數據的源是什麼,都可以將 DataSet 作為符合萬維網聯合會 (W3C) 的 XML 進行編寫,其架構作為 XML 架構定義語言 (XSD) 架構。 由於 DataSet 的本機序列化格式為 XML,因此它是用於在層間移動數據的絕佳媒介,這使 DataSet 成為了與 XML Web 服務之間遠程處理數據和架構上下文的最佳選擇。 有關詳細信息,請參閱XML 文檔和數據。