天天看點

趣味了解ADO.NET對象模型

    資料庫的應用在我們的生活和工作中已經無處不在,無論是一個小企業的OA系統,還是中國移動的營運系統,似乎都離不開資料庫的應用。對于大多數應用程式來說,不管它們是Windows桌面應用程式,還是Web應用程式,存儲和檢索資料都是其核心功能。是以針對資料庫的開發已經成為軟體開發的一種必備技能。如果說過去是“學好數理化,走遍天下都不怕”,那麼,對于今天的軟體開發者而言就是“學好資料庫,走到哪兒都不怵!”。

    ADO.NET是微軟新一代.NET資料庫的通路架構,ADO是ActiveX Data Objects的縮寫。ADO.NET是資料庫應用程式和資料源之間溝通的橋梁,主要提供一個面向對象的資料通路架構,用來開發資料庫應用程式。

     為了更好地了解ADO.NET的架構模型的各個組成部分,我們可以對ADO.NET中的相關對象進行圖示了解,如圖5-3所示的是ADO.NET中資料庫對象的關系圖。

圖5-3  ADO.NET對象模型

我們可以用趣味形象化的方式了解ADO.NET對象模型的各個部分,如圖5-4所示,可以看出這些對象所處的地位和對象間的邏輯關系。

 ADO.NET趣味了解圖

趣味了解

對比ADO.NET的資料庫對象的關系圖,我們可以用對比的方法來形象地了解每個對象的作用,如圖5-4所示。

l  資料庫好比水源,存儲了大量的資料。

l  Connection好比伸入水中的進水籠頭,保持與水的接觸,隻有它與水進行了“連接配接”,其他對象才可以抽到水。

l  Command則像抽水機,為抽水提供動力和執行方法,通過“水龍頭”,然後把水返給上面的“水管”。

l  DataAdapter、DataReader就像輸水管,擔任着水的傳輸任務,并起着橋梁的作用。DataAdapter 像一根輸水管,通過發動機,把水從水源輸送到水庫裡進行儲存。DataReader 也是一種水管,和DataAdapter不同的是,DataReader不把水輸送到水庫裡面,而是單向地直接把水送到需要水的使用者那裡或田地裡,是以要比在水庫中轉一下更快更高效。

l  DataSet則是一個大水庫,把抽上來的水按一定關系的池子進行存放。即使撤掉“抽水裝置”(斷開連接配接,離線狀态),也可以保持“水”的存在。這也正是ADO.NET的核心。

l  DataTable則像水庫中的每個獨立的水池子,分别存放不同種類的水。一個大水庫由一個或多個這樣的水池子組成。

      選自《亮劍.NET. .NET深入體驗與實戰精要》 5.1.2 節。