我啥时候应该考虑使用 ORM 框架?

Posted

技术标签:

【中文标题】我啥时候应该考虑使用 ORM 框架?【英文标题】:When should I consider using an ORM framework?我什么时候应该考虑使用 ORM 框架? 【发布时间】:2009-07-14 04:39:35 【问题描述】:

我正在开发一个应用程序,该应用程序目前通过 ADO.NET 和硬编码的 SQL 语句查询(相当大的)数据库。诚然,这很丑陋(即如果 SQL 中出现错误,则不会引发编译时错误)并且有潜在危险(由于 SQL 注入等,尽管这对于这个特定的应用程序来说不太可能成为问题),但最初并没有考虑到这一点因为这个应用程序实际上只对这个数据库中的一小部分表感兴趣(至少现在......)。

LinqToSQL 看起来很有趣,但因为这个应用程序还需要能够连接到 Oracle 数据库,所以这个计划是行不通的。

像我这样的项目是否适合与 ORM 框架集成,还是会有点矫枉过正?

【问题讨论】:

这看起来像是 ***.com/questions/349718/… 的副本等等。搜索“Orm Framework”,你会看到。 【参考方案1】:

我认为至少应该考虑ORM

但听起来您甚至没有使用业务对象(有时称为数据访问层或 DAL),这极大地破坏了面向对象语言的实用性。我会先解决这个问题。如果您发现为业务对象创建所有 CRUD 太耗时,那么是时候使用 ORM...

我个人最喜欢的是 nHibernate。学习曲线很大,但绝对值得。

【讨论】:

【参考方案2】:

我建议使用生成的 DAL 而不是 ORM 或 Linq。

查看亚音速 http://subsonicproject.com/。它是一个开源的 DAL 生成器,非常易于学习和使用,并且开销非常低。

【讨论】:

我自己没用过SubSonic,但是经常看作者的博客。我认为第一次进入 DAL 和 ORM 字段可能是一个很棒的 DAL。【参考方案3】:

我肯定会说它是 ORM 框架的候选者。熟悉框架后,设置 ORM 的开销非常小,而且好处很多。

如您所说,如果您可能需要 Oracle 支持,LinqToSQL 不合适,但大多数其他框架都支持 Oracle。

如果您只使用一小部分表,那么您只需映射一小部分表,因此设置成本将进一步降低。

祝你好运!

【讨论】:

【参考方案4】:

尝试使用能生成 sql 的东西(如 Linq,仅适用于 Oracle),而不是 orm。

为什么? Jeff Atwood explains.

引用:

“一开始你就像“哇!对象!”然后你就会意识到——嘿,这是很多乏味、容易出错的映射代码,我以前不必编写......”

【讨论】:

以上是关于我啥时候应该考虑使用 ORM 框架?的主要内容,如果未能解决你的问题,请参考以下文章

我啥时候应该使用“while 循环”?

我啥时候应该考虑使用内存数据库,需要注意啥问题?

函子我啥时候应该使用它们它们的预期用途是啥[关闭]

我啥时候应该使用装饰器?

我啥时候应该在课堂上使用“this”?

orm