最近公司开展了一个项目,不知道是哪里来的需求,要求系统支持SqlServer
sybase,oracle, mysql四种数据库,由俺负责数据库访问层的设计,具体模式大概就是一个抽象工厂模型,但我想在这里面使用OR mapping,但是对系统跨数据库还是有些担忧,以前用过Nettiers+codeSmith一类的工具来做过相应的工程(数据库为sqlserver),里面的Entity层我觉得实现的非常不错的。但是这里面能否进行数据库的移植,还是有很大的疑问,小弟想请问一下大家对Or mapping的看法,交流交流经验, 请各位大虾不吝赐教,

解决方案 »

  1.   

    其实ORM主要是数据到对象的映射,跟支持多数据库没有如何关系,只是很多ORM组件支持多数据库而已。 楼主其实可以参考ORM的工具自己写个,因为一般的ORM组件在性能上都存在不少的问题。而且NET中也还没有想JAVA的hibernate那样成熟的ORM产品,nhibernate也存在不少问题
      

  2.   

    用OR mapping会不会不太灵活呢?
      

  3.   

    ORM针数据库进行表结构影射....生成实体类..关键是对这些实体类进行操作控制的问题..所以LZ应该开发一个共用的控制平台
      

  4.   

    ORM一般都用到反射,所以性能总是个问题,不过楼主的项目支持这么多数据库,想不用反射都难……可以参考一下NHibernate、ibastis、NBear等ORM框架
      

  5.   

    做一个抽象工厂绰绰有余了
    你用ORM,关键是你的用途在那里?尽量少写代码吗?只有两种办法:一是反射,而使codesmith
    我赞成codesmith,起到的作用相当,蛋性能更好!
      

  6.   

    目前来看.net下还没有成熟的orm框架,很多只是一个基于学习和交流上的,很少有真正用到项目开发上的,我们的初衷是为了较少代码的开发量,发现这样的拿来主义还是不可取。估计也只能自己去维护dal了。