當前位置: 妍妍網 > 碼農

.NET 主流 ORM 功能介紹 大全 最新

2024-02-01碼農

.NET主流ORM

下面是3款.NET 使用最多的ORM,來自公眾號投票結果 ,數據比較真實可靠

測試計畫 釋出時間 微信公眾號投票 使用難度 功能 效能
SqlSugar orm 2014 26% 491票 適中 中高
EFCore orm 2016 36% 663票 較難 中高
Dapper orm 2013 23% 374票 簡單

一、SqlSugar ORM介紹

一款 老牌 .NET 開源多庫架 構ORM框架(EF Core單庫架構),由果糖大數據科技團隊維護和更新 ,開箱即用最易上手的.NET ORM框架 。

生態圈豐富,目前開源生態僅次於EF Core,但是在需要多庫相容的計畫或產品中更加偏愛SqlSugar

1.1、ORM入門範例

//建立資料庫物件 (用法和EF Dappper一樣透過new保證執行緒安全)
SqlSugarClient Db= new SqlSugarClient(new ConnectionConfig(){
ConnectionString = "連線符字串",
DbType = DbType.SqlServer,
IsAutoCloseConnection = true});
//建表
//db.CodeFirst.InitTables<Student>(); 更多看文件遷移
//查詢表的所有
var list = db.Queryable<Student>().ToList();
//插入
db.Insertable(new Student() { SchoolId = 1, Name = "jack" }).ExecuteCommand();
//更新
db.Updateable(new Student() { Id = 1, SchoolId = 2, Name = "jack2" }).ExecuteCommand();
//刪除
db.Deleteable<Student>().Where(it => it.Id == 1).ExecuteCommand();
//實體與資料庫結構一樣
public classStudent
{
//數據是自增需要加上IsIdentity
//資料庫是主鍵需要加上IsPrimaryKey
//註意:要完全和資料庫一致2個內容
 [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
publicint Id { getset; }
publicint? SchoolId { getset; }
publicstring Name { getset; }
}




1.2、SqlSugar ORM 開箱即用(支持AOT)

1、真正可以實作零Sql的ORM,擁有超強查詢體系:導航查詢、聯表查詢、聯集查詢、子查詢 、 報表查詢 等

2、支持 .NET 百萬級【大數據】寫入和更新、分表和幾十億查詢和統計等 擁有成熟方案

3、支持 SAAS 完整套用 跨庫查詢 、審計、租戶分庫 、租戶分表 和 租戶數據隔離

4、支持【低程式碼】+工作流 (動態建類 、動態建表、無實體多庫相容CRUD 、 JSON TO SQL 、自訂XML等)

5、語法最爽的.NET ORM、優美的運算式、倉儲、UnitOfWork、DbContext、AOP

6、支持 DbFirst、CodeFirst(無命令遷移)和【WebFirst】 3種模式開發

7、 簡單易用、功能齊全、高效能、輕量級、服務齊全、官網教程文件、有專業技術支持一天18小時服務

1.3、SqlSugar資料庫支持

關系型資料庫 MySql、SqlServer、Sqlite、Oracle 、 postgresql、達夢、人大金倉(國產推薦)、海量資料庫Vastbase、神通資料庫、瀚高、Access 、OceanBase MySqlConnector、華為 GaussDB 、南大通用 GBase、MariaDB、Tidb、Odbc、Percona Server, Amazon Aurora、Azure Database for MySQL、PolarDB Google Cloud SQL for MySQL、kunDB、TDSQL、GoldenDB 、自訂資料庫
時序資料庫 TDengine (支持群集,缺點不支持更新,語法比較弱支持的東西少)QuestDb(適合幾十億數據分析,模糊查詢,適合單機,語法強大,自動分表儲存 ,缺點不支持刪除)
列式儲存庫 Clickhouse(適用於商業智慧領域(BI),缺點大小寫必須和庫一樣,不支持事務)
即將上線 Mongodb(mongodb.entities)延期24年1月Sybase、hana、FireBird、InfluxDBlitedb、

SqlSugar特色1:超級簡單

在不用任何設計模式,任何框架的情況下都可以擁有最佳體驗,SqlSugar做到了保姆一樣的服務,直接用不需要學習

的框架,各種預設值都是最佳配置,用到什麽看一下文件便可。

SqlSugar特色2:產品必備

1、低程式碼支持:string to exp、exp to string、 exp to sql 、List< object> to sql 、Json to sql 、List< object> to class

2、可以一套程式碼支持所有主流資料庫(包括國產資料庫),成本要遠低於EF Core, EF Core基本每個資料庫都需要手動寫

相容程式碼 。例如:建表、建立檢視、獲取表結構、獲取數據型別、查詢函式、索引 、修改表等等,SqlSugar只需要一

套程式碼就能支持多個資料庫。支持多庫建表,多庫修改表,多庫索引,多庫事務,多庫查詢,跨庫查詢,多庫共存,

多庫切換等等。

補充:支持的Sql函式超100個

SqlSugar 特色3:高效能方案

1、SqlSugar可以生成理想的Sql脫穎而出,相反EF Core對生成的SQL的調整能力有限,可能受到一些限制和約束, SqlSugar在復雜查詢方面的優勢使其成為更強大、更高效的選擇。

2、SqlSugar提供了全面的高效能解決方案,包括大數據寫入、大數據導航查詢、大數據更新、大數據分表、大數據刪除、大數據插入或更新、大數據匯入和驗證等功能。此外,它還支持二級緩存、讀寫分離、時序庫等功能。無論是處理海量數據還是最佳化資料庫操作,SqlSugar都是一個強大而可靠的選擇。它的高效能和豐富的功能集使得開發者能夠輕松應對各種復雜場景,並實作快速高效的資料庫操作。

3、SqlSugar是一個完全開源且遵循MIT協定的框架,提供了與收費元件如Z.EntityFramework.Extensions.EFCore和Dapper Plus相媲美的全部功能,而無需支付額外費用。

4、超高的基礎效能,例如100萬記條對映到List< T>比Dapper還快些

SqlSugar 特色4:無限潛力

任何開源都離不開活躍的社群,未來發展將越好,目前SqlSugar 擁有.NET單個開源計畫最活躍的社群之一

並且當天解決率為80%,開源界最勤勞的小蜜蜂 ,每天都在和使用者互動,已經形成了良性迴圈

社群每天都有好的建議和需求推動著SqlSugar向更高的高度發展

Sqlugar 特色5:超前理念

SqlSugar是一款來自未來的ORM,擁有超前的理念,需求領跑第一線,可以毫不誇張的說,在設計理念上就算不更新幾年都不會過時,我們每天都會跟蹤使用者需求,將這些使用者需求分類和整理,把有共性的功能都整理出來,經歷過長達7年的努力,需求成負增長,已經走向了成熟和完善,是一款真正用了功能齊全的ORM框架,如果你用過EF CORE或者DAPPER肯定會為功能缺失而無奈,該有的功能沒有,花裏胡哨的一大堆。

如果你用SqlSugar,會給你一個不錯的選擇, 不斷給你驚喜。

Dapper ORM

Dapper是一款輕量級ORM工具。如果你在小的計畫中,使用Entity Framework、NHibernate 來處理大數據存取及關系對映,未免有點殺雞用牛刀。你又覺得ORM省時省力,這時Dapper 將是你不二的選擇。

物件關系對映(ORM)已經被使用了很長時間,以解決在編程過程中物件模型與數據模型在關聯式資料庫中不匹配的問題。

Dapper是由Stack OverFlow團隊開發的開源的,輕量級的ORM.相比於其他的ORM框架,Dapper速度非常快。

Dapper的設計考慮到了效能以及易用性。它支持使用事務,儲存過程或數據批次插入的靜態和動態物件繫結。

EF Core ORM

Entity Framework (EF) Core 是輕量化、可延伸、開源和跨平台版的常用 Entity Framework 數據存取技術。

EF Core 可用作物件關系對映程式 (O/RM),這可以實作以下兩點:

  • 使 .NET 開發人員能夠使用 .NET 物件處理資料庫。

  • 無需再像通常那樣編寫大部份數據存取程式碼。

  • EF Core 支持多個資料庫引擎,請參閱資料庫提供程式了解詳細資訊。

    源碼下載

    Dapper ORM

    https://github.com/DapperLib/Dapper

    EF Core ORM

    https://github.com/dotnet/efcore

    SqlSugar ORM

    https://github.com/DotNetNext/SqlSugar

    轉自:果糖大數據科技

    連結:cnblogs.com/sunkaixuan/p/17845363.html

    - EOF -