前言
在以前的一篇文章中,為大家分享了《什麼是ORM?為什麼用ORM?淺析ORM的使用及利弊》。那麼,在目前的.NET(C#)的世界裡,有哪些主流的ORM,SqlSugar,Dapper,Entity Framework(EF)還是ServiceStack.OrmLite?或者是你還有更好的ORM推薦呢? 如果有的話,不防也一起分享給大家。
.NET(C#)主流ORM總攬
今天這篇文章分享幾款收集的目前.NET(C#)中比較流行的ORM框架,比如(以下框架均為開源框架,託管於github上):
- SqlSugar (國內)
- Dos.ORM (國內)
- Chloe (國內)
- StackExchange/Dapper (國外)
- Entity Framework (EF) (國外)
- NHibernate (國外)
- ServiceStack/ServiceStack.OrmLite (國外)
- linq2db (國外)
- Massive (國外)
- PetaPoco (國外)
SqlSugar
SqlSugar是國人開發者開發的一款基於.NET的ORM框架,是可以執行在.NET 4.+ & .NET CORE的高效能、輕量級 ORM框架,眾多.NET框架中最容易使用的資料庫訪問技術。
特點:
- 開源、免費
- 國內開發者開發、維護;
- 支援.NET Core;
- 支援主流資料庫,如:SQL Server,MySql,Oracle,Sqlite等;
- 維護更新及時
推薦等級:★★★★☆
PetaPoco
PetaPoco:輕量的POCO物件和資料庫對映的ORM框架。
特點:
- 開源、免費
推薦等級:★★★★☆
linq2db
linq2db也是一款快速、輕量、型別安全的POCO物件和資料庫對映的ORM框架。從構架上來說,linq2db是對比如:Dapper、PetaPoco這個的微ORM的進一步封裝,但它不像Entity Framework那樣笨重。它沒有實現狀態跟蹤,需要自己處理實體的狀態更改等。
推薦等級:★★★★☆
Dos.ORM
Dos.ORM(原Hxj.Data)於2009年釋出,2015年正式開源。在開發過程中參考了NBear與MySoft,吸取了他們的一些精華,加入新思想,同時參考EF的Lambda語法進行大量擴充套件。該元件已在數百個成熟專案中應用。官方網站:http://ITdos.com/Dos/ORM/Inde…
特點:
- 開源、免費
- 上手簡單,0學習成本。使用方便,按照sql書寫習慣編寫C#.NET程式碼。功能強大
- 高效能,接近手寫Sql
- 體積小(不到150kb,僅一個dll)
- 完美支援Sql Server(2000至最新版),MySql,Oracle,Access,Sqlite等資料庫
- 支援大量Lambda表示式寫法,國產ORM支援度最高,開源中國ORM排行前三
- 不需要像NHibernate的XML配置,不需要像EF的各種資料庫連線驅動
- 遵循MIT開源協議,除不允許改名,其它隨意定製修改
推薦等級:★★★☆☆
ServiceStack.OrmLite
ServiceStack.OrmLite的目標是提供一種方便,無干擾,無配置的RDBMS無關型別的封裝,與SQL保持高度的契合,展現直觀的API,可以生成可預測的SQL。
ServiceStack.OrmLite的宗旨:Fast, Simple, Typed ORM for .NET
特點:
- 開源、收費(免費版只支援單個庫10張表)
推薦等級:★★★☆☆
Entity Framework (EF)
ADO.NET Entity Framework 是微軟以 ADO.NET 為基礎所發展出來的物件關係對應 (O/R Mapping) 解決方案。該框架曾經為.NET Framework的一部分,但version 6之後從.NET Framework分離出來。
推薦等級:★★★☆☆
NHibernate
NHibernate是一個面向.NET環境的物件/關聯式資料庫對映工具。物件/關聯式資料庫對映(object/relational mapping,ORM)這個術語表示一種技術,用來把物件模型表示的物件對映到基於SQL的關係模型資料結構中去。
特點:
- 開源、免費
- 批量寫入
- 批量讀/多重查詢特性(我理解是在說Future?)
- 批量的集合載入
- 帶有lazy=”extra”的集合
- 集合過濾器和分頁集合
- 二級快取(實際上NH的二級快取貌似也很簡單?)
- 整合和擴充套件性
- 程式碼自動生成,減少程式碼和sql的開發量,使開發人員擺脫開sql,ado.net和事務,快取等底層
推薦等級:★★★☆☆
Massive
Massive:小巧,動態的微ORM框架。
推薦等級:★★★☆☆
以上是筆者收集整理的部分目前.NET(C#)中流行的ORM框架。
如果你還有其他更好的ORM,歡迎留言,交流。
如果你覺得本文對你或者他人有幫助,請點個贊吧。
本文同步發表至 圖享網 《目前的.NET(C#)世界裡,有哪些主流的ORM–SqlSugar,Dapper,Entity Framework(EF)還是…》