ADO.NET 架構

傳統的資料處理主要是依賴相互連接的雙層式模型。 隨著資料處理朝多層式架構發展,程式設計人員也逐漸改用中斷連接的方式,使應用程式更具延展性 (Scalability)。

ADO.NET 元件

ADO.NET 用於存取及操作資料的兩個主要元件是 .NET Framework 資料提供者與 DataSet

.NET Framework 資料提供者

.NET Framework 資料提供者是一種明確設計用於管理資料以及快速存取順向唯讀資料的元件。 Connection 物件會提供資料來源的連接。 Command 物件可讓您存取資料庫命令,以便傳回資料、修改資料、執行預存程序 (Stored Procedure),並且傳送或擷取參數資訊。 DataReader 則可提供來自資料來源的高效能資料流。 最後,DataAdapter 會提供 DataSet 物件與資料來源之間的橋接器 (Bridge)。 DataAdapter 會使用 Command 物件於資料來源處執行 SQL 命令,以便將資料載入 DataSet,並且將 DataSet 內的資料變更調節回資料來源。 如需詳細資訊,請參閱 .NET Framework 資料提供者在 ADO.NET 擷取及修改資料

DataSet

ADO.NET DataSet 的設計已明確指出它可獨立於任何資料來源外而存取資料。 因此,它可與多個不同的資料來源搭配使用、與 XML 資料搭配使用,或用來管理應用程式的本機資料。 DataSet 包含一或多個由資料列和資料行所組成的 DataTable 物件集合,以及 DataTable 物件中的主索引鍵、外部索引鍵、條件約束 (Constraint) 及資料的關聯資訊。 如需詳細資訊,請參閱 DataSets、DataTables 與 DataViews

下圖說明 .NET Framework 資料提供者與 DataSet 之間的關聯性。

ADO.Net graphic
ADO.NET 架構

選擇 DataReader 或 DataSet

當您決定應用程式是否應使用 DataReader (請參閱 利用 DataReader 擷取資料) 或 DataSet (請參閱 DataSets、DataTables 與 DataViews),請考慮應用程式所需的功能類型。 請使用 DataSet 來進行下列作業:

  • 請快取應用程式本機的資料,如此您才能夠管理它。 若您只需要讀取查詢結果,DataReader 將是比較理想的選擇。

  • 在各層間或從 XML Web Service 遠端處理資料。

  • 與資料動態互動 (例如繫結 Windows Form 控制項),或是將來自多個來源的資料合併和關聯。

  • 針對資料進行廣泛處理,並不需要與資料來源間有開放連接,如此便可將連接釋放給其他用戶端使用。

如果您不需要 DataSet 所提供的功能,則可採用 DataReader 以順向、唯讀的方式來傳回資料,藉以提升應用程式的效能。 儘管 DataAdapter 利用 DataReader 來填入 DataSet 的內容 (請參閱從 DataAdapter 填入資料集),但利用 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 會將物件模型中的 Language-Integrated Query 轉譯成 Transact-SQL,然後將其傳送至資料庫進行執行。 當資料庫傳回結果時,LINQ to SQL 會將結果轉譯回物件。 如需詳細資訊,請參閱 LINQ to SQL

ADO.NET Entity Framework

ADO.NET Entity Framework 的設計目標是要讓開發人員針對概念應用程式模型進行程式設計來建立資料存取應用程式,而不用直接對關聯式儲存結構描述進行程式設計。 其目的是要減少資料導向應用程式所需程式碼和維護的工作量。 如需詳細資訊,請參閱 ADO.NET Entity Framework

WCF Data Services

WCF Data Services 用於在 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 的資料來源為何,DataSet 都可組合成與全球資訊網協會 (W3C) 相容的 XML,而且包含其結構描述當做 XML 結構描述定義語言 (XSD) 結構描述。 由於 DataSet 的原生序列化格式是 XML,所以相當適合當做在各層之間移動資料的媒體,如此當需要在遠端對 XML Web Service 來回傳送資料和結構描述內容時,DataSet 將會是最佳選擇。 如需詳細資訊,請參閱 XML 文件和資料

另請參閱