最新的Dapper VS Entity Framework 6性能考虑因素

时间:2014-09-09 16:58:17

标签: .net performance entity-framework orm dapper

Dapper(这似乎是最快,最受欢迎的"微型ORM工具")之间有一些性能比较。 现在是2014年9月,我们有实体框架6(不是5或4),而Dapper仍然存在。

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

  1. 有没有人对EF 6.1.x的性能有任何更新?这涉及在DbContext中进行的一般查询。
  2. 我想我不能在Dapper上使用格式良好的LINQ查询。你有经验吗?是否值得为额外的速度而失去LINQ?
  3. IS Dapper仍处于活跃,持续发展之中吗? GitHub告诉我是的,但与Subsonic一样,这可能会很快发生变化。
  4. 混合Dapper和EF是否可行/可行?当我们需要速度时,小巧玲珑,否则为EF。
  5. 谢谢!

1 个答案:

答案 0 :(得分:54)

  1. 有没有人对EF 6.1.x的性能有任何更新?这涉及在DbContext中进行的一般查询?
  2. Ans :我没有具体的数字,但我已将性能装备更新为EF6;我不记得确切的结果,但是:EF6比EF-old要快很多,但是在许多情况下,dapper仍然明显更快(并且边缘情况大致相同)

    1. 我想我不能在Dapper上使用格式良好的LINQ查询。你有经验吗?是否值得为额外的速度而失去LINQ?
    2. Ans :这是主观的;对我们来说:是的,绝对值得 - 但我们非常关心速度。解析表达式树有影响,并且生成的SQL很少与手工编写的SQL在同一个联盟中由一个体面的开发

      1. IS Dapper仍处于活跃,持续发展之中吗? GitHub告诉我是的,但是和Subsonic一样,这可以很快改变吗?
      2. Ans :绝对;我想我本月已经部署了大约4个版本......

        1. 混合Dapper和EF是否可行/可行?当我们需要速度时,小巧玲珑,否则EF?
        2. 答案:是的,你可以这样做;这就是我们开始使用dapper的方式 - 我们用它来替换导致性能问题的 LINQ to SQL 代码;随着时间的推移,已经增长,现在我们只剩下很少的 LINQ to SQL 代码(但仍有一些)