关于 OR Mapping的讨论
最近公司开展了一个项目,不知道是哪里来的需求,要求系统支持SqlServer
sybase,oracle, mysql四种数据库,由俺负责数据库访问层的设计,具体模式大概就是一个抽象工厂模型,但我想在这里面使用OR mapping,但是对系统跨数据库还是有些担忧,以前用过Nettiers+codeSmith一类的工具来做过相应的工程(数据库为sqlserver),里面的Entity层我觉得实现的非常不错的。但是这里面能否进行数据库的移植,还是有很大的疑问,小弟想请问一下大家对Or mapping的看法,交流交流经验, 请各位大虾不吝赐教,
------解决方案--------------------mark
------解决方案--------------------没有用过,也不喜欢用。帮搂主up
------解决方案--------------------其实ORM主要是数据到对象的映射,跟支持多数据库没有如何关系,只是很多ORM组件支持多数据库而已。 楼主其实可以参考ORM的工具自己写个,因为一般的ORM组件在性能上都存在不少的问题。
而且NET中也还没有想JAVA的hibernate那样成熟的ORM产品,nhibernate也存在不少问题
------解决方案--------------------如果只支持一种数据库,那用用也无所谓,支持这么多种数据库,怕是将来出错都找不到北。
------解决方案--------------------用OR mapping会不会不太灵活呢?
------解决方案--------------------ORM针数据库进行表结构影射....生成实体类..关键是对这些实体类进行操作控制的问题..所以LZ应该开发一个共用的控制平台
------解决方案--------------------ORM一般都用到反射,所以性能总是个问题,不过楼主的项目支持这么多数据库,想不用反射都难……可以参考一下NHibernate、ibastis、NBear等ORM框架
------解决方案--------------------mark
------解决方案--------------------支持多数据库用它是不是有点麻烦了。
------解决方案--------------------做一个抽象工厂绰绰有余了
你用ORM,关键是你的用途在那里?尽量少写代码吗?只有两种办法:一是反射,而使codesmith
我赞成codesmith,起到的作用相当,蛋性能更好!