ORM有什么好处?

CRe*_*lts 8 sql subsonic nhibernate performance orm

所以我有一个头撞墙的时刻,并希望有人可以来帮助移除墙壁或阻止我的头移动!

在过去的3/4周里,我一直在调查ORM为新项目做好准备.ORM必须映射到现有的,大型且老化的SQL数据库.

所以我尝试了亚音速.我非常喜欢mod2之后的v2和v3与VB很好地协作,并且SQL中的命名模式运行正常.然而,由于缺乏具有单独的实体属性名称与列名称的灵活性,我把头发拉了出来(抱歉Rob).

我尝试了实体框架,但我发现其他人在某些领域缺乏这种功能.

所以我咬了一口子并尝试了nHibernate,但是经过一周左右的时间让它工作起来我喜欢(在Codesmith的帮助下为我生成类/ hbms)我对启动时间(构建配置对象)感到沮丧尽管尝试了一些技巧来减少这个时间.

我基本上是在构建了一个可以在应用程序和网站之间共享的DAL类.我吠叫错了树吗?对于包含100个表的遗留项目,我应该回到ado.net并使用DTO吗?Aarrgh!

对不起,这个问题很少见.我没有多少头发,我想保留我拥有的东西!

在此先感谢,Ed

PS.我应该补充一点,我非常了解SQL,并且不怕写脏快速查询.如果有什么我不需要隐藏SQL

And*_*ena 8

ORM让你:

  1. 将表行映射到对象,这是面向对象编程的可行部分.
  2. 自动浏览对象关系
  3. 轻松添加,编辑和删除表行
  4. 以更直观的方式查询数据库,因为您不必考虑连接(这将取决于ORM和查询方法)
  5. 透明地处理L1和L2缓存.

如果您不使用ORM,则必须手动处理以上所有内容.

PS:我同意Dmitry关于NHibernate的启动时间(参见问题评论).此外,你有没有试过Fluent NHibernate?流畅的NHibernate令人印象深刻.我第一次映射数据库时无法相信自己的眼睛.它比DevExpress XPO这样的专有ORM更容易.