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

Joh*_*ohn 40 .net performance orm entity-framework 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.

谢谢!

Mar*_*ell 55

  1. 有没有人对EF 6.1.x的性能有任何更新?这涉及在DbContext中进行的一般查询?

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

  1. 我想我不能在Dapper中使用格式良好的LINQ查询.你有经验吗?是否值得为额外的速度而失去LINQ?

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

  1. IS Dapper还在积极,不断发展吗?GitHub告诉我是的,但是和Subsonic一样,这可以很快改变吗?

:绝对的; 我想我本月已经部署了大约4个版本......

  1. 混合Dapper和EF是否可行/可行?当我们需要速度时,小巧玲珑,否则EF?

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

  • @AaronLS LINQ-to-SQL; 是的,它早于它,但在我看来,前几个EF版本低于L2S的质量 (2认同)
  • 找到了不错的基准[这里](http://blog.dontpaniclabs.com/post/2014/05/01/Speed-Comparison-Dapper-vs-Entity-Framework).在我看来,除非你真的需要尽可能快地在你的查询中减少10~毫秒,并且值得你花费更多的时间来开发你的应用程序,**使用实体框架> 6**.Marc你同意速度测试和我的结论吗? (2认同)