對於我們而言選擇ORM框架的目的,其實都是為了讓我們的程式更好的操作資料庫,提高開發程式設計效率和程式的維護拓展性。所以我們選擇ORM需要從專案實際業務出發,選擇最合適自己團隊的框架。
下面推薦10個主流比較流行的ORM框架,都是開源的專案:
1、SqlSugar(國內)
支援SqlServer、MySql、PgSql和Oracle插入blukcopy
分表大資料自處理
支援多租戶、多庫事務
支援 支援 CodeFirst 資料遷移。
支援 Join 查詢、Union all 、Subquery
支援配置查詢
支援 DbFirst 從資料庫匯入實體類,或使用生成工具。
支援一對多和多對多的導航屬性
支援MySql、SqlServer、Sqlite、Oracle、postgresql、QuestDb、ClickHouse、達夢、人大金倉、神通資料庫、瀚高、MsAccess、華為GaussDB、GBase 8s、Odbc、自定義
支援 AOP 、 Diff Log 、 Query Filter
開源地址:https://github。com/donet5/SqlSugar
2、Dos.ORM(國內)
Dos。ORM於2009年釋出、2015年正式開源,該元件已在數百個成熟專案中應用。初期開發過程中吸取了NBear與MySoft的一些精華並加入新思想,之後參考EF Lambda語法進行大量擴充套件。經過數十個版本的更新迭代釋出全新v2。0版本,支援動態列/表、分庫/分表等。
開源地址:https://github。com/itdos/Dos。ORM
3、Chloe(國內)
Chloe 是一個輕量級的物件/關係對映(ORM)庫。查詢介面類似於 LINQ。您可以使用 Chloe。ORM 透過 lambda 查詢 LINQ 之類的資料並執行任何操作(查詢 | 組查詢 | 聚合查詢 | 插入 | 批次更新 | 批次刪除)。
開源地址:https://github。com/shuxinqin/Chloe
4、StackExchange/Dapper(國外)
Dapper。EntityFramework
EntityFramework 的擴充套件處理程式
Dapper。EntityFramework。StrongName
EntityFramework 的擴充套件處理程式
Dapper。Rainbow
在 Dapper 上實現的 Micro-ORM,提供 CRUD 助手
Dapper。SqlBuilder
用於動態且可組合地構建 SQL 查詢的元件
Dapper。StrongName
支援 MySQL、Sqlite、SqlICE 和 Firebird 的高效能微 ORM
開源地址:https://github。com/DapperLib/Dapper
5、Entity Framework (EF)(國外)
它是微軟封裝好一種http://ADO。NET資料實體模型,將資料庫結構以ORM模式對映到應用程式中。
EF提供變更跟蹤、唯一性約束、惰性載入、查詢事物等。
開發人員使用Linq語言,對資料庫操作如同操作object物件一樣省事。
EF有三種使用場景:
1、從資料庫生成Class。
2、由實體類生成資料庫表結構。
3、透過資料庫視覺化設計器設計資料庫,同時生成實體類。
開源地址:https://github。com/dotnet/ef6
6、NHibernate(國外)
NHibernate 是一個成熟的開源物件關係對映器,適用於 。NET 框架。它被積極開發,功能齊全,並在數千個成功的專案中使用。
開源地址:https://github。com/nhibernate/nhibernate-core
7、ServiceStack/ServiceStack.OrmLite(國外)
簡單的 。NET 的快速、、型別化的 ORM
開源地址:https://github。com/ServiceStack/ServiceStack。OrmLite
8、linq2db(國外)
LINQ to DB 是最快的 LINQ 資料庫訪問庫,在 POCO 物件和資料庫之間提供了一個簡單、輕量、快速且型別安全的層。
在架構上,它比 Dapper、Massive 或 PetaPoco 等微 ORM 高出一步,因為您使用 LINQ 表示式而不是魔術字串,同時在程式碼和資料庫之間維護一個薄抽象層。您的查詢由 C# 編譯器檢查並允許輕鬆重構。
但是,它不像 LINQ to SQL 或實體框架那麼重。沒有更改跟蹤,因此您必須自己進行管理,但從積極的方面來說,您可以獲得更多控制權並更快地訪問您的資料。
換句話說LINQ to DB 是型別安全的 SQL。
開源地址:https://github。com/linq2db/linq2db
9、Massive(國外)
一個小型、快樂、動態的 。NET MicroORM
開源地址:https://github。com/FransBouma/Massive
10、PetaPoco(國外)
很小,絕對沒有依賴!
非同步或同步,選擇權在您。(又名非同步)(V6)
與嚴格未修飾的 POCO 或歸屬的幾乎 POCO 一起使用。
易於配置,包括開箱即用的流暢配置。
插入/刪除/更新/儲存和 IsNew 的輔助方法
分頁請求會自動計算出總記錄數並獲取特定頁面。
簡單的交易支援。
更好的引數替換支援,包括從物件屬性中獲取命名引數。
透過使用 DynamicMethod 生成消除 Linq 和快速屬性分配來獲得出色的效能。
查詢語言是好的 ole SQL。
包括一個低摩擦的 SQL 構建器類,使編寫內聯 SQL變得更加容易。
包括 T4 模板以自動為您生成 POCO 類。(V5)
用於記錄異常、安裝值轉換器和將列對映到沒有屬性的屬性的掛鉤。
適用於 SQL Server、SQL Server CE、MS Access、SQLite、MySQL、MariaDB、Firebird 和 PostgreSQL。(Oracle 支援但沒有整合測試)。
在 Net Standard 2。0、。NET 4。0/4。5+ 或 Mono 2。8 及更高版本下工作。
有Xunit單元測試。
已支援 DBs 整合測試。
開源地址:https://github。com/CollaboratingPlatypus/PetaPoco
- End -