盤點10個.Net比較流行的開源的ORM框架(.net開源框架有哪些)
對于我們而言選擇ORM框架的目的,其實都是為了讓我們的程序更好的操作數(shù)據(jù)庫,提高開發(fā)編程效率和程序的維護(hù)拓展性。所以我們選擇ORM需要從項目實際業(yè)務(wù)出發(fā),選擇最合適自己團(tuán)隊的框架。
下面推薦10個主流比較流行的ORM框架,都是開源的項目:
1、SqlSugar(國內(nèi))
- 支持SqlServer、MySQL、PgSql和Oracle插入blukcopy
- 分表大數(shù)據(jù)自處理
- 支持多租戶、多庫事務(wù)
- 支持 支持 CodeFirst 數(shù)據(jù)遷移。
- 支持 Join 查詢、Union all 、SubQuery
- 支持配置查詢
- 支持 DbFirst 從數(shù)據(jù)庫導(dǎo)入實體類,或使用生成工具。
- 支持一對多和多對多的導(dǎo)航屬性
- 支持MySql、SqlServer、Sqlite、Oracle、PostgreSQL、QuestDb、ClickHouse、達(dá)夢、人大金倉、神通數(shù)據(jù)庫、瀚高、MsAccess、華為GaussDB、GBase 8s、Odbc、自定義
- 支持 AOP 、 Diff Log 、 Query Filter
開源地址:https://github.com/donet5/SqlSugar
2、Dos.ORM(國內(nèi))
Dos.ORM于2009年發(fā)布、2015年正式開源,該組件已在數(shù)百個成熟項目中應(yīng)用。初期開發(fā)過程中吸取了NBear與MySoft的一些精華并加入新思想,之后參考EF Lambda語法進(jìn)行大量擴(kuò)展。經(jīng)過數(shù)十個版本的更新迭代發(fā)布全新v2.0版本,支持動態(tài)列/表、分庫/分表等。
開源地址:https://github.com/itdos/Dos.ORM
3、Chloe(國內(nèi))
Chloe 是一個輕量級的對象/關(guān)系映射(ORM)庫。查詢接口類似于 LINQ。您可以使用 Chloe.ORM 通過 lambda 查詢 LINQ 之類的數(shù)據(jù)并執(zhí)行任何操作(查詢 | 組查詢 | 聚合查詢 | 插入 | 批量更新 | 批量刪除)。
開源地址:https://github.com/shuxinqin/Chloe
4、StackExchange/Dapper(國外)
- Dapper.EntityFramework
- EntityFramework 的擴(kuò)展處理程序
- Dapper.EntityFramework.StrongName
- EntityFramework 的擴(kuò)展處理程序
- Dapper.Rainbow
- 在 Dapper 上實現(xiàn)的 Micro-ORM,提供 CRUD 助手
- Dapper.SqlBuilder
- 用于動態(tài)且可組合地構(gòu)建 SQL 查詢的組件
- Dapper.StrongName
- 支持 MySQL、Sqlite、SqlICE 和 Firebird 的高性能微 ORM
開源地址:https://github.com/DapperLib/Dapper
5、Entity Framework (EF)(國外)
它是微軟封裝好一種http://ADO.NET數(shù)據(jù)實體模型,將數(shù)據(jù)庫結(jié)構(gòu)以O(shè)RM模式映射到應(yīng)用程序中。
EF提供變更跟蹤、唯一性約束、惰性加載、查詢事物等。
開發(fā)人員使用Linq語言,對數(shù)據(jù)庫操作如同操作object對象一樣省事。
EF有三種使用場景:
1、從數(shù)據(jù)庫生成Class。
2、由實體類生成數(shù)據(jù)庫表結(jié)構(gòu)。
3、通過數(shù)據(jù)庫可視化設(shè)計器設(shè)計數(shù)據(jù)庫,同時生成實體類。
開源地址:https://github.com/dotnet/ef6
6、NHibernate(國外)
NHibernate 是一個成熟的開源對象關(guān)系映射器,適用于 .NET 框架。它被積極開發(fā),功能齊全,并在數(shù)千個成功的項目中使用。
開源地址:https://github.com/nhibernate/nhibernate-core
7、ServiceStack/ServiceStack.OrmLite(國外)
簡單的 .NET 的快速、、類型化的 ORM
開源地址:https://github.com/ServiceStack/ServiceStack.OrmLite
8、linq2db(國外)
LINQ to DB 是最快的 LINQ 數(shù)據(jù)庫訪問庫,在 POCO 對象和數(shù)據(jù)庫之間提供了一個簡單、輕量、快速且類型安全的層。
在架構(gòu)上,它比 Dapper、Massive 或 PetaPoco 等微 ORM 高出一步,因為您使用 LINQ 表達(dá)式而不是魔術(shù)字符串,同時在代碼和數(shù)據(jù)庫之間維護(hù)一個薄抽象層。您的查詢由 C# 編譯器檢查并允許輕松重構(gòu)。
但是,它不像 LINQ to SQL 或?qū)嶓w框架那么重。沒有更改跟蹤,因此您必須自己進(jìn)行管理,但從積極的方面來說,您可以獲得更多控制權(quán)并更快地訪問您的數(shù)據(jù)。
換句話說LINQ to DB 是類型安全的 SQL。
開源地址:https://github.com/linq2db/linq2db
9、Massive(國外)
一個小型、快樂、動態(tài)的 .NET MicroORM
開源地址:https://github.com/FransBouma/Massive
10、PetaPoco(國外)
- 很小,絕對沒有依賴!
- 異步或同步,選擇權(quán)在您。(又名異步)(V6)
- 與嚴(yán)格未修飾的 POCO 或歸屬的幾乎 POCO 一起使用。
- 易于配置,包括開箱即用的流暢配置。
- 插入/刪除/更新/保存和 IsNew 的輔助方法
- 分頁請求會自動計算出總記錄數(shù)并獲取特定頁面。
- 簡單的交易支持。
- 更好的參數(shù)替換支持,包括從對象屬性中獲取命名參數(shù)。
- 通過使用 DynamicMethod 生成消除 Linq 和快速屬性分配來獲得出色的性能。
- 查詢語言是好的 ole SQL。
- 包括一個低摩擦的 SQL 構(gòu)建器類,使編寫內(nèi)聯(lián) SQL變得更加容易。
- 包括 T4 模板以自動為您生成 POCO 類。(V5)
- 用于記錄異常、安裝值轉(zhuǎn)換器和將列映射到?jīng)]有屬性的屬性的掛鉤。
- 適用于 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 –
推薦閱讀