數據處理傳統上主要依賴以連線為基礎的兩層模型。 隨著數據處理越來越多地使用多層式架構,程式設計人員會切換到中斷聯機的方法,為應用程式提供更好的延展性。
ADO.NET 元件
ADO.NET 用於存取和操作資料的兩個主要元件是 .NET Framework 資料提供者和 DataSet。
.NET Framework 資料提供者
.NET Framework 數據提供者是專門為數據操作以及快速的前向、只讀存取所設計的元件。 物件 Connection 提供數據源的連線能力。 物件 Command 可讓您存取資料庫命令以傳回數據、修改數據、執行預存程式,以及傳送或擷取參數資訊。
DataReader從數據源提供高效能的數據流。 最後,DataAdapter 提供了 DataSet 對象與數據源之間的橋接。
DataAdapter 使用 Command 對象在資料來源執行 SQL 命令,以將資料載入 DataSet 並協調 DataSet 中的資料變更,回寫至資料來源。 如需詳細資訊,請參閱 .NET Framework 數據提供者 和擷 取和修改 ADO.NET 中的數據。
The DataSet
DataSet ADO.NET 是針對獨立於任何數據源的數據存取所明確設計。 因此,它可以與多個和不同的數據源搭配使用、與 XML 數據搭配使用,或用來管理應用程式本機的數據。
DataSet包含一或多個DataTable物件的集合,其中包含數據列和數據行,以及主鍵、外鍵、條件約束和對象中DataTable數據的相關關聯資訊。 如需詳細資訊,請參閱 DataSets、DataTables 和 DataViews。
下圖說明 .NET Framework 數據提供者與 DataSet之間的關聯性。
ADO.NET 架構
選擇 DataReader 或 DataSet
當您決定應用程式是否應該使用 DataReader (請參閱 使用 DataReader 擷取數據) 或 DataSet (請參閱 DataSets、DataTables 和 DataViews),請考慮應用程式所需的功能類型。 使用DataSet來執行以下動作:
在您的應用程式中本地快取資料,以便能操作。 如果您只需要讀取查詢的結果,
DataReader是較佳的選擇。階層或 XML Web 服務之間的遠端數據。
以動態方式與數據互動,例如系結至 Windows Forms 控件,或結合和關聯多個來源的數據。
對數據執行廣泛的處理,而不需要開啟數據源的連線,這會釋放其他用戶端所使用的連線。
如果您不需要 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。
ADO.NET Entity Framework
ADO.NET Entity Framework 的設計目的是讓開發人員能夠針對概念性應用程式模型進行程序設計,而不是直接針對關係型記憶體架構進行程序設計,以建立數據存取應用程式。 目標是減少數據導向應用程式所需的程式代碼和維護數量。 如需詳細資訊,請參閱 ADO.NET Entity Framework。
WCF 數據服務
WCF 資料服務可用來在 Web 或內部網路上部署數據服務。 根據實體數據模型的規格,數據會結構化為實體和關聯性。 此模型上部署的數據可透過標準 HTTP 通訊協定尋址。 如需詳細資訊,請參閱 WCF Data Services 4.5。
XML 和 ADO.NET
ADO.NET 利用 XML 的優勢來提供資料非連線模式的存取權。 ADO.NET 是與 .NET Framework 中的 XML 類別一起設計;兩者都是單一架構的元件。
ADO.NET 和 .NET Framework 中的 XML 類別會交集於 物件中 DataSet 。
DataSet可以填入來自 XML 來源的數據,無論是檔案還是 XML 數據流。
DataSet可以撰寫為符合萬維網聯合會(W3C)標準的 XML,這包括它的架構作為 XML 架構定義語言(XSD)架構,無論DataSet中的數據來源是什麼。 由於 DataSet 的原生串行化格式是 XML,它是一種在層級之間傳遞數據的理想媒介,使得 DataSet 成為在 XML Web 服務中遠端傳輸數據和架構內容的最佳選擇。 如需詳細資訊,請參閱 XML 檔和數據。
另請參閱
- ADO.NET 概觀