ADO.NET与ADO.NET实体框架的比较

6
ADO.NET Entity Framework比ADO.NET更快吗?
2个回答

8

没有比ADO.NET数据阅读器更快的了。
实体框架也在“地下室”中使用它。

然而,实体框架帮助您将数据库映射到对象中..
使用ADO.NET时,您必须自己完成此操作。
它取决于您如何编程以及它有多快..

当您将ADO.NET数据表作为“对象”使用时。它们比普通对象稍微慢一些,并且占用内存较多..


当您将ADO.NET数据表用作“对象”时,它们比普通对象稍微慢一些且占用更多内存。这是否意味着ADO.NET更快? - Alexandre
另一方面,你可以认为使用EF工作时,程序员比处理数据读取器和其他低级元素更快。 - marc_s
网页应用的速度是什么情况? - Alexandre
1
无论是Web还是桌面应用,EF = 数据读取器 + 对象映射器,ADO.NET DataTables = 数据读取器 + "对象"映射器。ADO.NET DataReader比EF更快,EF很可能比ADO.NET DataTables更快。 - Julian de Wit
现在就来介绍 Dapper,不用说太多。 - Masoud Andalibi

2
正如Julian de Wit所说,没有什么比ADO.NET DataReaders更快了。 ADO.NET Entity Framework是对旧的ADO.NET的封装。 它是纯粹的提供程序独立、ORM和EDL系统。 它给我们带来了许多好处,在过去我们必须手工制作或“复制和粘贴”。

另一个好处是它完全独立于提供程序。 即使您喜欢旧的ADO.NET机制或者像我这样的恐龙(:P),您也可以使用Entity Framework,使用EntityClient像SqlClient、MySqlClient一样,并使用与提供程序无关的Entity-Sql功能。 我知道在ADO.NET中,您可以编写数据访问层和DataReaders等“独立”的内容,但是您仍然需要特定于提供程序的查询。

另一方面,在企业应用程序中,您可能永远不想更改数据提供程序。 但随着技术的发展,总会出现新的需求,您可能需要更改数据库架构。

当旧的ADO.NET框架发生这种情况时,我们必须重构大量代码,这是不可维护的,无论我们如何重用代码。

性能将受到影响,但是有了所有这些缓存技术,我们可以克服这个问题。

正如我经常说的,“C很快,汇编语言更快……但我们使用C#/VB.NET/Java”


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接