【问题标题】:Latest Dapper VS Entity Framework 6 performance considerations最新的 Dapper VS Entity Framework 6 性能注意事项
【发布时间】:2014-11-03 04:49:53
【问题描述】:

在 Dapper(这似乎是最快、最流行的“微型 ORM 工具”)之间进行了一些性能比较。 现在是 2014 年 9 月,我们有 Entity Framework 6(不是 5 或 4)而且 Dapper 仍然存在。

我们将开始开发一个庞大的数据库 n 层应用程序(数据库有 700 个表)。而且一些需要运行的查询对时间非常敏感。

  1. 是否有人对 EF 6.1.x 的性能有任何更新?这涉及在 DbContext 中进行的一般查询。
  2. 我想我不能在 Dapper 中使用格式良好的 LINQ 查询。你有这方面的经验吗?为了提高速度,是否值得失去 LINQ?
  3. Dapper 是否仍在积极、持续的开发中? GitHub 告诉我是的,但与 Subsonic 一样,这可能会很快改变。
  4. 混合 Dapper 和 EF 是否可行/可行?当我们需要速度时使用 Dapper,否则 EF。

谢谢!

【问题讨论】:

    标签: .net performance entity-framework orm dapper


    【解决方案1】:
    1. 是否有人对 EF 6.1.x 的性能有任何更新?这涉及在 DbContext 中进行的一般查询?

    Ans:我没有具体数字,但我已将性能装备更新为 EF6;我不记得确切的结果,但是:EF6 比 EF-old 快很多,但在许多情况下 dapper 仍然明显更快(边缘情况也差不多)

    1. 我想我不能在 Dapper 中使用格式良好的 LINQ 查询。你有这方面的经验吗?为了提高速度,是否值得失去 LINQ?

    Ans:这是主观的;对我们来说:是的,绝对值得——但我们非常关心速度。解析表达式树会产生影响,生成的 SQL 很少与体面的开发人员手工制作的 SQL 处于同一联盟中

    1. Dapper 是否仍在积极、持续的开发中? GitHub 告诉我是的,但与 Subsonic 一样,这会很快改变吗?

    回答:当然;我想我这个月已经部署了大约 4 个版本...

    1. 混合 Dapper 和 EF 是否可行/可行?当我们需要速度时使用 Dapper,否则 EF?

    Ans:是的,你可以这样做;这就是我们开始使用 dapper 的方式——我们用它来替换导致性能问题的 LINQ to SQL 代码;随着时间的推移,它已经增长,现在我们只剩下很少的 LINQ to SQL 代码(但仍然有一些)

    【讨论】:

    • 伟大的洞察力马克!但是 L2S 代表什么?我以前从未遇到过。
    • @Ghandicap LINQ to SQL
    • @MarcGravell 你的意思是 Linq to Entities 吗?或者你真的在使用 Linq to SQL?我的理解是 Linq to SQL 早于 EF,只是好奇你正在使用/混合你的 dapper。
    • @AaronLS LINQ-to-SQL;是的,它早于它,但在我看来,前几个 EF 版本低于 L2S 的质量
    • 找到了不错的基准here。在我看来,除非您真的需要尽可能快并在查询中缩短 10~ 毫秒,并且值得您花更多时间开发应用程序,否则使用实体框架 > 6 . Marc 你同意速度测试和我的结论吗?
    猜你喜欢
    • 2019-08-07
    • 2020-05-07
    • 2014-01-30
    • 2011-07-09
    • 1970-01-01
    • 2017-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多