李天平的博客


天道酬勤
posts - 169, comments - 2976, trackbacks - 83, articles - 17
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

趣味理解ADO.NET对象模型

Posted on 2009-06-17 19:56  李天平  阅读(...)  评论(...编辑  收藏

    数据库的应用在我们的生活和工作中已经无处不在,无论是一个小企业的OA系统,还是中国移动的运营系统,似乎都离不开数据库的应用。对于大多数应用程序来说,不管它们是Windows桌面应用程序,还是Web应用程序,存储和检索数据都是其核心功能。所以针对数据库的开发已经成为软件开发的一种必备技能。如果说过去是“学好数理化,走遍天下都不怕”,那么,对于今天的软件开发者而言就是“学好数据库,走到哪儿都不怵!”。

    ADO.NET是微软新一代.NET数据库的访问架构,ADOActiveX Data Objects的缩写。ADO.NET是数据库应用程序和数据源之间沟通的桥梁,主要提供一个面向对象的数据访问架构,用来开发数据库应用程序。

     为了更好地理解ADO.NET的架构模型的各个组成部分,我们可以对ADO.NET中的相关对象进行图示理解,如图5-3所示的是ADO.NET中数据库对象的关系图。

ADO.NET对象模型

 

图5-3  ADO.NET对象模型

我们可以用趣味形象化的方式理解ADO.NET对象模型的各个部分,如图5-4所示,可以看出这些对象所处的地位和对象间的逻辑关系。

ADO.NET趣味理解图

 ADO.NET趣味理解图

 

 

趣味理解

 

对比ADO.NET的数据库对象的关系图,我们可以用对比的方法来形象地理解每个对象的作用,如图5-4所示。

l  数据库好比水源,存储了大量的数据。

l  Connection好比伸入水中的进水笼头,保持与水的接触,只有它与水进行了“连接”,其他对象才可以抽到水。

l  Command则像抽水机,为抽水提供动力和执行方法,通过“水龙头”,然后把水返给上面的“水管”。

l  DataAdapterDataReader就像输水管,担任着水的传输任务,并起着桥梁的作用。DataAdapter 像一根输水管,通过发动机,把水从水源输送到水库里进行保存。DataReader 也是一种水管,和DataAdapter不同的是,DataReader不把水输送到水库里面,而是单向地直接把水送到需要水的用户那里或田地里,所以要比在水库中转一下更快更高效。

l  DataSet则是一个大水库,把抽上来的水按一定关系的池子进行存放。即使撤掉“抽水装置”(断开连接,离线状态),也可以保持“水”的存在。这也正是ADO.NET的核心。

l  DataTable则像水库中的每个独立的水池子,分别存放不同种类的水。一个大水库由一个或多个这样的水池子组成。

 

      选自《亮剑.NET. .NET深入体验与实战精要》 5.1.2 节。