SqlSugar ORM
SqlSugar 是一款 老牌 .NET 開源多庫架構(gòu)ORM框架 ,一套代碼能支持多種數(shù)據(jù)庫像Admin.net、Blog.Core、CoreShop等知名開源項(xiàng)目都采用了SqlSugar作為底層
特色1:超級簡單
在不用任何設(shè)計(jì)模式,任何框架的情況下都可以擁有最佳體驗(yàn),SqlSugar做到了保姆一樣的服務(wù),直接用不需要學(xué)習(xí)
的框架,各種默認(rèn)值都是最佳配置,用到什么看一下文檔便可。
特色2:產(chǎn)品必備
可以一套代碼支持所有主流數(shù)據(jù)庫(包括國產(chǎn)數(shù)據(jù)庫),成本要遠(yuǎn)低于EF Core, EF Core基本每個(gè)數(shù)據(jù)庫都需要手動(dòng)寫
兼容代碼 。 例如:建表、查詢函數(shù)、索引 、修改表等等。 SqlSugar只需要一套代碼就能支持多個(gè)數(shù)據(jù)庫。支持
多庫建表,多庫修改表,多庫索引,多庫事務(wù),多庫查詢,跨庫查詢,多庫共存,多庫切換等等。
?
一、鑒別器(Discrimator)
類似tdengine里面超級表概念, 他可以在一張表里面存儲一個(gè)或者多個(gè)個(gè)性化字段,查詢自動(dòng)變成條件,并且插入更新都會自賦值進(jìn)行存儲
Discrimator ="Type:1"http://字段名字可以隨便取 Discrimator ="Type:1,Name:a" //可以多個(gè)字段,不要有空格等
用例
[SugarTable("Animal",IsDisabledDelete =true)]//創(chuàng)建表禁止刪除列必須加 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)]//創(chuàng)建表禁止刪除列必須加 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)]//創(chuàng)建表禁止刪除列必須加 public class Cat : Animal { [SugarColumn(IsNullable = true)]//可空 public int CatId { get; set; } [SugarColumn(IsNullable = true)]//可空 public string Color { get; set; } }
創(chuàng)建表
db.CodeFirst.InitTables<Animal,Dog, Cat>();//這個(gè)表包含所有字段,包括Type分類字段
查詢和插入
var cat = new Cat { Name = "Whiskers", Color = "Gray" }; db.Insertable(cat).ExecuteCommand();//實(shí)體類中沒有Type字段會自插入特性對應(yīng)的Type=2 var catList=db.Queryable<Cat>().ToList();//自動(dòng)加上條件Type=1 var dogList = db.Queryable<Dog>().ToList();//自動(dòng)加上條件Type=2
更新操作
直接更新就行了Type會忽略更新
?
鑒別器導(dǎo)航
在導(dǎo)航應(yīng)用也可以用使,他的優(yōu)勢就是實(shí)體中不需要這個(gè)字段,而缺點(diǎn)就是需要?jiǎng)?chuàng)建多個(gè)類
var dis=db.Queryable<UnitTestDis<Cat>>() .Includes(x => x.Animals).ToList();//T是Cat那么就能導(dǎo)航Cat var dis2 = db.Queryable<UnitTestDis<Dog>>() .Includes(x => x.Animals).ToList();//T是Dog那么就能導(dǎo)航Dog [SugarTable("UnitTestDis")]//泛型需要設(shè)置表名 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 數(shù)據(jù)庫支持
TDengine——開源、高性能、云原生的時(shí)序數(shù)據(jù)庫
TDengine 是一款開源、云原生的時(shí)序數(shù)據(jù)庫,專為物聯(lián)網(wǎng)、工業(yè)互聯(lián)網(wǎng)、金融、IT 運(yùn)維監(jiān)控等場景設(shè)計(jì)并優(yōu)化。它能讓大量設(shè)備、數(shù)據(jù)采集器每天產(chǎn)生的高達(dá) TB 甚至 PB 級的數(shù)據(jù)得到高效實(shí)時(shí)的處理,對業(yè)務(wù)的運(yùn)行狀態(tài)進(jìn)行實(shí)時(shí)的監(jiān)測、預(yù)警,從大數(shù)據(jù)中挖掘出商業(yè)價(jià)值。?
?
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文章來源:http://www.zghlxwxcb.cn/news/detail-628285.html
?SqlSugar下面準(zhǔn)備要支持?mongodb 數(shù)據(jù)庫,喜歡推薦一下,SqlSugar一直努力的創(chuàng)新和維護(hù)文章來源地址http://www.zghlxwxcb.cn/news/detail-628285.html
到了這里,關(guān)于.NET ORM 鑒別器 和 TDengine 使用 -SqlSugar的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!