SqlSugar ORM SqlSugar 是一款 老牌 .NET 開源多庫架構ORM框架 ,一套代碼能支持多種資料庫像Admin.net、Blog.Core、CoreShop等知名開源項目都採用了SqlSugar作為底層 特色1:超級簡單 在不用任何設計模式,任何框架的情況下都可以擁有最佳體驗,S ...
SqlSugar ORM
SqlSugar 是一款 老牌 .NET 開源多庫架構ORM框架 ,一套代碼能支持多種資料庫像Admin.net、Blog.Core、CoreShop等知名開源項目都採用了SqlSugar作為底層
特色1:超級簡單
在不用任何設計模式,任何框架的情況下都可以擁有最佳體驗,SqlSugar做到了保姆一樣的服務,直接用不需要學習
的框架,各種預設值都是最佳配置,用到什麼看一下文檔便可。
特色2:產品必備
可以一套代碼支持所有主流資料庫(包括國產資料庫),成本要遠低於EF Core, EF Core基本每個資料庫都需要手動寫
相容代碼 。 例如:建表、查詢函數、索引 、修改表等等。 SqlSugar只需要一套代碼就能支持多個資料庫。支持
多庫建表,多庫修改表,多庫索引,多庫事務,多庫查詢,跨庫查詢,多庫共存,多庫切換等等。
一、鑒別器(Discrimator)
類似tdengine裡面超級表概念, 他可以在一張表裡面存儲一個或者多個個性化欄位,查詢自動變成條件,並且插入更新都會自賦值進行存儲
Discrimator ="Type:1"//欄位名字可以隨便取 Discrimator ="Type:1,Name:a" //可以多個欄位,不要有空格等
用例
[SugarTable("Animal",IsDisabledDelete =true)]//創建表禁止刪除列必須加 public class Animal { [SugarColumn(IsIdentity =true,IsPrimaryKey =true)] public int AnimalId { get; set; } public string Name { get; set; } } [SugarTable("Animal",Discrimator ="Type:1", IsDisabledDelete = true)]//創建表禁止刪除列必須加 public class Dog : Animal { [SugarColumn(IsNullable =true)]//可空 public int DogId { get; set; } [SugarColumn(IsNullable = true)]//可空 public string Breed { get; set; } } [SugarTable("Animal", Discrimator = "Type:2", IsDisabledDelete = true)]//創建表禁止刪除列必須加 public class Cat : Animal { [SugarColumn(IsNullable = true)]//可空 public int CatId { get; set; } [SugarColumn(IsNullable = true)]//可空 public string Color { get; set; } }
創建表
db.CodeFirst.InitTables<Animal,Dog, Cat>();//這個表包含所有欄位,包括Type分類欄位
查詢和插入
var cat = new Cat { Name = "Whiskers", Color = "Gray" }; db.Insertable(cat).ExecuteCommand();//實體類中沒有Type欄位會自插入特性對應的Type=2 var catList=db.Queryable<Cat>().ToList();//自動加上條件Type=1 var dogList = db.Queryable<Dog>().ToList();//自動加上條件Type=2
更新操作
直接更新就行了Type會忽略更新
鑒別器導航
在導航應用也可以用使,他的優勢就是實體中不需要這個欄位,而缺點就是需要創建多個類
var dis=db.Queryable<UnitTestDis<Cat>>() .Includes(x => x.Animals).ToList();//T是Cat那麼就能導航Cat var dis2 = db.Queryable<UnitTestDis<Dog>>() .Includes(x => x.Animals).ToList();//T是Dog那麼就能導航Dog [SugarTable("UnitTestDis")]//泛型需要設置表名 public class UnitTestDis<T> { [SugarColumn(IsPrimaryKey =true,IsIdentity =true)] public int Id { get; set; } public int Aid { get; set; } [Navigate(NavigateType.OneToMany,nameof(Animal.AnimalId),nameof(Aid))] public List<T> Animals { get; set; } }
二、TDengine 資料庫支持
TDengine——開源、高性能、雲原生的時序資料庫
TDengine 是一款開源、雲原生的時序資料庫,專為物聯網、工業互聯網、金融、IT 運維監控等場景設計並優化。它能讓大量設備、數據採集器每天產生的高達 TB 甚至 PB 級的數據得到高效實時的處理,對業務的運行狀態進行實時的監測、預警,從大數據中挖掘出商業價值。
TDengine 連接字元串
Host=localhost;Port=6030;Username=root;Password=taosdata;Database=power
TDengine Nuegt安裝
NUGET SDK需要下載和安裝
https://docs.taosdata.com/connector/csharp/
下麵是NUGET安裝
SqlSugar.TDengineCore SqlSugarCore
TDengine DEMO 源碼
https://github.com/DotNetNext/SqlSugar
SqlSugar下麵準備要支持 mongodb 資料庫,喜歡推薦一下,SqlSugar一直努力的創新和維護