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