ORM技术实现原理
对象关系映射(ORM)是一层使用面向对象编程(OOP)语言在数据库和面向对象实体之间转换我们的数据的层。
什么是ORM,它如何工作?
开发适合业务服务的应用程序并同时促进其转换绝对是一个集思广益的任务。每当企业考虑开发应用程序时,他们还需要考虑其可维护性,根据技术进行升级并提高整体性能。这些必不可少的因素可使应用程序长时间稳定运行,并帮助企业使用ORM工具针对大多数应用程序获得最佳结果。这些工具帮助他们将数据库设计与面向对象的设计分开。但是同时,如果应用程序的性能也是一个重要因素,那么软件开发人员也应该添加此性能因素决定选择ORM软件时将其移至列表中。否则,经过很长时间,使用该ORM可能难以处理性能因素。
什么是对象关系映射(ORM)?
对象关系映射(ORM)是一层使用面向对象编程(OOP)语言在数据库和面向对象实体之间转换我们的数据的层。
市场上有几种ORM工具。下面给出了一些构建应用程序所需的最常用工具,它们是
Entity Framework
Dapper
NHibernate
在本文中,我们将比较ORM与ADO.NET的不同功能。我们还将使用一个示例项目来比较这两个框架的性能。这样可以帮助我们选择最适合我们的应用程序需求的ORM。
ORM中的功能比较
不同的ORM支持不同的功能,为了进行比较,我们在下面列出了不同的ORM的已知和常用功能及其方便的输出。
ORM中的性能比较
要衡量性能,软件开发人员将必须实际检查不同ORM的性能。用户可以从此处下载示例项目和所需的数据库脚本文件。然后,稍后开始设置数据库环境。
环境设置–数据库
创建具有三个不同表的数据库架构。您可以使用schema.sql脚本文件来创建数据库。并使用data.sql脚本文件生成伪数据。您可以通过示例项目找到脚本文件和伪数据文件。
项目(与团队表具有1到n的关系)
团队(与TeamMember表成1到n的关系)
团队成员
环境设定
为了进行性能测试,我们添加了,
Project有500个数据,Team有1000个数据,TeamMember有1000000个数据
我们将执行查询,以在多次迭代中获得以下结果,
通过TeamMemberId获取TeamMember
通过TeamId获取TeamMembers
通过ProjectId获取TeamMembers
对于我们的性能测试,我们专用的软件开发团队创建了一个示例项目,并为每个框架添加了一个图层类。图层类连接并执行查询到数据库。因此,基本上,我们将检查给定框架创建查询,获取结果以及映射对象的速度。
如果您注意到了结果,那么在包括模型映射以及禁用更改跟踪之后,所有ORM在执行时间上几乎有很大差异。同样,对于第一个迭代,EF&EF Core消耗的执行时间比其他迭代要多一些,但是在下一个迭代中,两者的执行时间几乎相同。
修改样本
您也可以浏览示例项目以获取更多详细信息。根据您的要求,您可以修改脚本以添加虚拟数据并修改常量参数(例如“迭代次数”,每个表的总计数)。
快速回顾
始终最好使用正确的工具完成正确的工作。
在本文中,我们的软件程序员比较了不同ORM支持的常用功能。此外,我们已经检查了ORM在不同查询结果上的性能。因此,根据软件开发人员的要求,我们全面描述了每个功能的工作原理,现在您可以通过简化的方法为任何应用程序选择正确的ORM框架。