欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-04-28 13:09:27
因为老板的一句话公司项目需要迁移到.Net Core ,但是以前同事用的ORM不支持.Net Core 开发过程也遇到了各种坑,插入条数多了也特别的慢,导致系统体验比较差好多都改写Sql实现。 所以我打算找一款 性能比较好 功能比较完善 方便以后可以切换数据库(经过我对老板的了解这个功能非常重要) ......

因为老板的一句话公司项目需要迁移到.net core ,但是以前同事用的orm不支持.net core 开发过程也遇到了各种坑,插入条数多了也特别的慢,导致系统体验比较差好多都改写sql实现。

所以我打算找一款

                           性能比较好 

                           功能比较完善

                           方便以后可以切换数据库(经过我对老板的了解这个功能非常重要)

                           并且要有一定用户基础的orm 

 

参赛orm

能够参赛的orm必须要有以下个条件

第一、功能方面要比较完善

第二、github需要有一定人气并且最近有更新

第三、支持多种数据库少写sql,方便以后

 

筛选结果:

1、ef core

2、dapper+扩展

3、sqlsugar core

4、nhibernate core

5、petapoco

 

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

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

1、ef core     人气10,功能10

2、dapper+扩展  人气10,功能9

3、sqlsugar core  人气7,功能10

4、nhibernate core 人气7,功能10 

5、petapoco 人气6,功能6

经过第一轮帅选,我淘淘汰了petapoco orm

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

 

第一轮得分排名

1、ef core 胜出     

2、dapper+扩展   胜出 

3、sqlsugar core  ,nhibernate core 胜出 

4、petapoco 淘汰

 

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

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

1、ef core  10   轻松满足

2、dapper+扩展   8  需要找插件比较费时间

3、sqlsugar core 10   轻松满足

4、nhibernate core  1 完全不会用

 

第二轮得分排名

1、ef core,sqlsugar core   胜出     

2、dapper+扩展   胜出 

3、nhibernate core  淘汰 

 

能够通过精心挑选并且进入前3名,相信这3个orm都有他们独自的魅力

 

第三轮淘汰赛 我们比性能

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

我意外的发现sqlsugar性能比dapper更加的优秀,ef core垫底

第三轮得分排名

1、sqlsugar core   胜出     

2、dapper+扩展   胜出 

3、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