DataSet和实体,泛型集合

一直以来DataSet和泛型集合,实体的用法都是我们争议的对象,比如在三层架构中我们到底用什么好呢?下面就来重点讨论这个问题。

我们知道Ado.net是一个对数据库操作的组件,里面存放着很多数据操作的类,但是他最大的好处就是可以在断开连接的时候继续和数据打交道,这些都因为有一个重要的对象DataSet,它相当于是一个小型的仓库,我们把数据先读到这个仓库里,也就是计算机的内存中,所以下次访问的时候就直接去内存中访问就可以了,这是它的好处,但是同样我们也看出了它的劣势

1、  占用内存,消耗内存

2、  C#是一个面向对象(oop)的语言,但是DataSet完全没有

3、  读取单个数据的时候很麻烦,需要一个个循环,读取,相比DataRead访问效率很低

4、  在三层架构中,因为从DataSet中读取数据的时候用的都是表中的真实字段,所以在表示层和业务逻辑层中完全暴露了数据的结构

综上所述,所以在.net2.0中用实体和泛型集合替换了DataSet,把数据封装到实体中,这样读取单个数据就很简单了,返回整个或者很多这样的对象的时候我们可以用强类型集合即泛型集合,将对象保存到泛型集合中,然后返回这个泛型集合就可以了

无论是DataSet和实体,泛型集合都有它的优势和劣势,我们可以结合着使用

我们知道DataSet还有一个好处,就是可以执行多表查询,无论有关联的还是无关联的,所以在我们想执行多个无关联表的时候,可以使用DataSet,这样他可能比泛型集合要省事,写一个简单的项目也可以使用DataSet,另外,如果你想偷懒,也可以使用,呵呵

其他的时候,特别是做大型项目的时候,我建议最好使用实体和泛型集合,这样也符合面向对象的原则

posted @ 2011-03-03 23:10  双魂人生  阅读(920)  评论(0编辑  收藏  举报