相比ORM,ADO.NET除了在访问效率上占有优势外,所存在的缺陷也是十分明显的:缺乏面向对象的思想,使用起来当然也不如ORM简便。ORM一方面应用也比较繁琐,当然相比ADO.NET是一劳永逸的事。不过ORM基本都需要依赖于类的关联文件,这样给使用上造成很大不便,而且在版本升级的过程中,有些不能兼容以前的配置文件,这样很多代码生成工具就不能再使用,而要手工配置,如果数据库中有多个表并且有多个字段,简直就是噩耗;另一方面就是ORM都存在一些缺陷,我们在应用中有时候数据库并不是自己设计的,所以存在很多不规范的地方,比如复合主键关联问题等,这样在应用ORM时候也形成了相当的困难比如NHibernate;再者,现在的持久层框架真是“品种繁多”:NHibernate ,ObjectBroker  ,Gentle.NET   ,iBATIS.NET  ,OJB.NET  ...真是令人眼花缭乱,孰优孰差?或者有没有优秀的对ADO.NET封装的比较好的框架呢?大家看法呢?分就这么少,多了也不给:)

解决方案 »

  1.   

    如果我告诉你,他们基本都是调用的ADO,你会怎么看=。=
      

  2.   

    自己写肯定不是一个明智的选择,的确有部分公司也写过,但是种种原因多半半途而废。另外一个我没明白:如果我告诉你,他们基本都是调用的ADO,你会怎么看?我们的目的其实是让数据访问层使用更容易,功能更强,效率更好,不想关心它实现的细节。或许不一定有完美的方法,但是优秀的折中方案总会有的。
      

  3.   

    自己写也没有什么不好啊。有经验的没有什么难度,只要解藕度高,对功能的扩展没有什么问题,即使有一天不用自己写的,根据自己的API替换实现没有什么不可以。
    http://blog.csdn.net/lxwin01/archive/2007/05/16/1611246.aspx,仅供参考.