orm和ADO.net有什么区别?

我正在读一本书,它说:“如果你通过使用ADO.NET访问你的数据库来创建你自己的数据访问层,那么无论数据模式是否存在,你都会受到的影响微乎其微。但是如果你使用的是O. / RM,您的灵活性将受到您使用的工具的限制“。 ADO.NET和任何其他ORM之间的主要区别是什么?

ADO.NET提供对SQL Server和XML等数据源以及通过OLE DB和ODBC公开的数据源的一致访问。 数据共享使用者应用程序可以使用ADO.NET连接到这些数据源,并检索,处理和更新它们包含的数据。

ADO.NET将数据访问与数据操作分离为可以单独使用或串联使用的独立组件。 ADO.NET包括.NET Framework数据提供程序,用于连接数据库,执行命令和检索结果。 这些结果要么直接处理,要么放在ADO.NET DataSet对象中,以便以临时方式暴露给用户,与来自多个源的数据结合,或者在层之间传递。 DataSet对象也可以独立于.NET Framework数据提供程序使用,以管理应用程序本地数据或源自XML的数据。

ADO.NET是一个层,允许您连接到数据库并使用SQL连接,命令和参数对其进行修改。 ADO.NET MSDN

计算机科学中的对象关系映射(ORM,O / RM和O / R映射工具)是一种用于在面向对象的编程语言中的不兼容类型系统之间转换数据的编程技术。 这实际上创建了可以在编程语言中使用的“虚拟对象数据库”。 尽管有些程序员选择构建自己的ORM工具,但有可用的免费和商业软件包可以执行对象关系映射。

Entity Framework NHiberante是ORM。 这意味着您不通过SQL连接,命令,参数进行操作 – ORM工具为您执行操作,它允许以OOP方式映射数据库结构:您可以使用C#中的对象在数据库中添加,读取,更新,删除记录。 您只需要正确地将对象映射到DB。 Entity Framework基于ADO.NET构建,它使用ADO.NET。 SQL语句由ORM生成。 ORM

通常,在没有ORM的情况下访问DB会更快,但您应该提供更多代码行。 如果要以OOP方式操作数据库并编写更易读的代码,则应选择ORM。 这取决于您的目的选择什么。

Micro ORM(Dapper,BLToolkit)允许您编写SQL查询并将参数映射到对象属性。 一般来说,微ORM比Full ORM具有更好的性能,但ADO.NET仍然更快。

此外,StackOverflow还有一些问题和答案: EF vs ADO.NET