.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

相關文章
相關標籤/搜索