完整的ADO.NET數據對象模型圖詳解
ADO.NET經過長時間的發展,很多用戶都很了解ADO.NET數據對象模型了,這里我發表一下個人理解,和大家討論討論。ADO.NET如何承接客戶端的數據請求,又如何完成數據源的訪問?可以通過圖來說明。這里提到的數據源是個更大的概念,數據庫是數據源中的一種,Excel文件也可能是數據源。

ADO.NET的承上啟下作用圖
ADO.NET通過Connection對象與數據源相連接,完成架設線路的作用。Command和DataAdapter對象利用這個Connection對象發送命令信號給數據源,這個命令信號可能是SQL語句,也可能是存儲過程的名字,由數據源執行完成。如果命令信號要求返回數據,客戶端就可以利用DataReader或者DataSet對象訪問得到的數據。如果命令信號是其他操作,客戶端就可以直接通過Command甚至Connection對象完成操作。
前面提到ADO.NET中的幾個對象。那么完整的ADO.NET數據對象模型應該是什么樣的呢?我們通過圖來詳細了解。

ADO.NET數據對象模型圖
整個ADO.NET數據對象模型分為兩大部分。***部分是.NET Framework數據提供程序部分,第二部分是作為客戶端本地緩存的數據集部分。.NET Framework數據提供程序部分包括的對象有Connection對象,Connection對象又可以產生事務對象——Command對象,與Command對象伴生的參數對象,DataReader對象,DataAdapter對象,與DataAdapter對象伴生的SelectCommand、InsertCommand、UpdateCommand、DeleteCommand對象。數據提供程序部分負責建立連接、發布命令、傳輸數據等功能。
#T#本地緩存數據集部分包括DataSet對象,DataSet對象在本地相當于一個小型數據庫,因此DataSet對象由數據表及表關系組成,所以DataSet對象包含DataTable對象和DataRelation對象,而數據表又包含行和列以及約束等結構,所以DataTable對象包含DataRow、DataColumn和Constraint對象。本地緩存數據集部分可以用來臨時存儲本地數據,這些數據可以是從數據庫獲取的,也可以是本地產生的,還可以是被修改的數據。在借助DataRelation和Constraint對象情況下,客戶端可以像訪問關系型數據那樣訪問本地緩存數據集。
ADO.NET中應用XML支持DataSet對象,這是由于XML主要關注的是關系和分層的結構化數據。DataSet的內容可以以XML文檔的形式寫出,也可以將XML文檔的內容讀入到DataSet中。