.Net Core ORM选择之路,哪一个才适合你

由于老板的一句话公司项目须要迁移到.Net Core ,可是之前同事用的ORM不支持.Net Core 开发过程也遇到了各类坑,插入条数多了也特别的慢,致使系统体验比较差好多都改写Sql实现。git

因此我打算找一款github

                           性能比较好 数据库

                           功能比较完善并发

                           方便之后能够切换数据库(通过我对老板的了解这个功能很是重要)app

                           而且要有必定用户基础的ORM 性能

 

参赛ORM测试

可以参赛的ORM必需要有如下个条件spa

第1、功能方面要比较完善hibernate

第2、Github须要有必定人气而且最近有更新插件

第3、支持多种数据库少写Sql,方便之后

 

筛选结果:

一、EF Core

二、Dapper+扩展

三、SqlSugar Core

四、Nhibernate Core

五、PetaPoco

 

第一轮淘汰赛  咱们比 人气&功能

通过对这几个ORM的初步了解,对功能方面和人气方面进行了初步评分

一、EF Core     人气10,功能10

二、Dapper+扩展  人气10,功能9

三、SqlSugar Core  人气7,功能10

四、Nhibernate Core 人气7,功能10 

五、PetaPoco 人气6,功能6

通过第一轮帅选,我淘淘汰了PetaPoco ORM

 最重要的是这个ORM定位比较尴尬 ,功能通常而且扩展插件也比较稀少。现有功能以拼Sql为主知足不了我之后切换数据库的需求,第一轮淘态。

 

第一轮得分排名

一、EF Core 胜出     

二、Dapper+扩展   胜出 

三、SqlSugar Core  ,Nhibernate Core 胜出 

四、PetaPoco 淘汰

 

第二轮淘汰赛 咱们比易用性

写太牛逼的功能并非咱们所考虑的,须要上手快好用,因而我针对项目中几个需求点进行了上手测试,并给出了评分

一、EF Core  10   轻松知足

二、Dapper+扩展   8  须要找插件比较费时间

三、SqlSugar Core 10   轻松知足

四、Nhibernate Core  1 彻底不会用

 

第二轮得分排名

一、EF Core,SqlSugar Core   胜出     

二、Dapper+扩展   胜出 

三、Nhibernate Core  淘汰 

 

可以经过精心挑选而且进入前3名,相信这3个ORM都有他们独自的魅力

 

第三轮淘汰赛 咱们比性能

通过对 批量插入、单条插入、批量更新、单条更新、条件查询、多选删除等几种经常使用场景的并发测试

我意外的发现SqlSugar性能比Dapper更加的优秀,EF Core垫底

第三轮得分排名

一、SqlSugar Core   胜出     

二、Dapper+扩展   胜出 

三、EF Core  淘汰 

经过上面各类环节咱们能够发现,我都会淘汰每场比赛表现最差者,由于我想找一个比较平衡的ORM用于项目,不想有短腿。

 

决赛 咱们比你们的建议

目前Dapper+扩展和SqlSugar Core  这2个ORM是最适合咱们的团队的,同事之间也各有说词,暂且平手吧。明天咱们公司会在进行讨论。写个博文让你们给给建议,进行最终定夺。

下面是这2款ORM地址:

Dapper

https://github.com/StackExchange/Dapper

https://github.com/tmsmith/Dapper-Extensions

SqlSugar

https://github.com/sunkaixuan/SqlSugar

相关文章
相关标签/搜索