首先,EF确实变得更快:他们投入了大量时间来提高性能 - 通过我的大部分措施,它仍然有明显的开销。考虑一下:EF位于ADO.NET之上。如果EF报告的结果明显快于ADO.NET,那么(我认为您已经怀疑这一点):您没有测量您认为自己在测量的内容。
我怀疑这里的关键问题是你在同一个数据上下文中执行所有操作。这意味着您现在可能只是强调身份管理器和缓存。我无法直接运行您的代码(因为它使用Oracle等),但查看执行的实际查询会很有趣。在实际使用中,每个数据上下文具有有限的工作单元寿命。在相同的数据上下文中执行10,000次操作将是非常罕见的。更典型的是少数操作。
然而,不相关:我不得不说:我对你的结果非常满意,显示dapper在原始ADO.NET性能的0.6%以内。这基本上就是我们用短小精悍的方式:原始ADO.NET的完整性能,但只是消除了编码的痛苦。