【问题标题】:EF vs NHibernate vs Dapper ORM [closed]EF vs NHibernate vs Dapper ORM [关闭]
【发布时间】:2023-03-28 05:20:01
【问题描述】:

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

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

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

【问题讨论】:

  • 网上可能有一些比较(其他地方)。这个“问题”不太适合 SO。
  • @pst Man...如果您知道来源,请在此处发布,如果没有任何理由您决定什么是合适的,什么是不合适的......跨度>
  • stackoverflow.com/faq 实际问题的实用、可回答问题”
  • @pst 像你这样的人的问题是你在 .net 社区中表现得像岳母......如果你知道答案在这里发布,如果你不知道让其他答案.. . 如果你觉得你什么都知道并且不想回答那很好,但让我们试着理解......我讨厌.net奶奶
  • 问题是我觉得在SO范围内没有合适的答案。这就是我投票关闭它的原因。这个问题太宽泛了。

标签: entity-framework orm nhibernate dapper


【解决方案1】:

EF 或 NHibernate 等“大型”ORM 工具的问题在于(夸大其词?)99% 的开发人员对掌握如何使其工作感到不知所措;他们没有时间弄清楚如何让它发挥作用。更糟糕的是,要使这些工具正常运行通常归结为具备出色的 SQL/数据库设计和调优技能——这削弱了 ORM 的一个主要卖点。

在我看来,二级缓存的问题被使用不当的 ORM 引入的其他性能损失所掩盖。似乎大多数使用 ORM 的项目都做得很差(同时设计数据库的工作也很差),这使得 2 级缓存有点没有意义。

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

  • 与宏 ORM 不同,开发人员无需花费数月时间来学习如何使用它们。每个微 ORM 不到一千行代码(犯罪!)。这可能需要多长时间才能理解?
  • 开发人员手头上的额外时间可以专门用于更好地掌握 SQL,他们需要学习这些知识才能更好地使用宏 ORM 或微 ORM。

需要明确的是,使用良好的宏 ORM 是一件很棒的事情。您是否拥有经验丰富的员工来确保其得到充分利用?

底线是这样的:如果您认为完整的 ORM 可以安全地隐藏数据库的复杂性,那么您几乎肯定会错了。如果给我一个选择,我会选择微型 ORM。不要误会我的意思,我认为 EF 和 NHIbernate 非常酷,我很乐意使用它们 - 我只是说你需要管理你的期望。

【讨论】:

  • 我真的不同意让 NHibernate 执行需要付出很多努力。单独的一级缓存(会话)可以带来巨大的性能优势,而且无需任何额外配置。使用 Fluent NHibernate 或 NHibernate 中的新映射代码,开始使用它会容易得多。您对 ORM 使用不当和数据库设计不佳的评论对于人们使用的任何东西都是一样的 - 大多数开发人员不会去查看项目的源代码,无论是 1000 行还是 100 000 行......
  • 您的回答归结为“我对 ORM 了解不多,但无论如何我对它们有强烈的看法”。 99.9%的开发者不知所措?真的吗?还是只有你?
  • 我同意他的观点。我现在正在使用实体框架,我觉得我不太了解它是如何工作的,所以我确信以后不会有任何问题......正如他所说......我们没有时间看看它是如何工作的应该执行。
  • 这个答案很有意义。纯粹就 EF 而言,我见过的绝大多数项目都浪费了大量时间来让事情正常工作。当最终确定推荐的解决方案(即清空关系对象)时,很难相信。
  • 我甚至在生产环境中也使用 Dapper。它完美地工作。非常简单,也非常快!
猜你喜欢
  • 2012-08-04
  • 2011-05-01
  • 1970-01-01
  • 2015-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
  • 2011-07-08
相关资源
最近更新 更多