EF vs NHibernate vs Drapper ORM

时间:2012-09-12 02:12:36

标签: entity-framework nhibernate orm

我想了解哪个ORM的性能很快?

  • NHibernate支持2级缓存我们可以将其性能与EF或Drapper进行比较吗?
  • EF Code First看起来很有前途,但我们是否为EF提供内置的2级缓存支持?
  • 对Drapper ORM不太了解

有人可以解释一下这个ORM的优缺点,以及选择哪一个来提高应用程序性能。

1 个答案:

答案 0 :(得分:24)

“大”ORM工具(例如EF或NHibernate)的问题在于(夸大?)99%的开发人员不知道如何掌握它如何使其工作;他们没有时间弄清楚如何让它表现出色。更糟糕的是,使这些工具正常运行通常归结为具有胜任的SQL /数据库设计和调优技能 - 这削弱了ORM的主要卖点。

在我看来,Level 2缓存的问题被一个使用不当的ORM引入的其他性能损失所黯然失色。似乎大多数使用ORM的项目都做得很差(以及设计数据库的工作很差),这使得2级缓存有点没有实际意义。

因此,像Massive或Dapper这样的微型ORM工具(后者被Stack Overflow使用)非常有吸引力:

  • 与宏ORM不同,开发人员不会花费数月时间学习如何使用它们。每个微ORM都不到一千行代码(犯罪!)。这可能需要多长时间才能理解?
  • 开发人员拥有的额外时间可以致力于更多地掌握SQL,他们需要学习如何使用宏或微ORM。

需要明确的是,一个使用良好的宏ORM是一件好事。您是否拥有经验丰富的员工以确保其使用良好?

最重要的是:如果您认为全面的ORM会安全地隐藏数据库的复杂性,那么几乎可以肯定您会被误解。如果我有一个选择,我会选择微型ORM。不要误会我的意思,我认为EF和NHIbernate非常酷,而且我很喜欢使用它们 - 我只是说你需要管理你的期望。