.Net Core ORM选择之路,哪个才适合你
因为老板的一句话公司项目需要迁移到.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
上一篇: 王思聪IP爆红养成记