TDengine?
是國(guó)內(nèi)比較流的時(shí)序庫(kù)之一,支持群集并且免費(fèi),在.NET中資料比較少,這篇文章主要介紹SqlSugar ORM來(lái)操作TDengine
優(yōu)點(diǎn):
1、SqlSugar支持ADO.NET操作來(lái)實(shí)現(xiàn)TDengine,并且支持了常用的時(shí)間函數(shù)、支持聯(lián)表、分頁(yè)和批量插入和刪等操作
2、使用了原生連接(非http連接 )保證了TDengine性能
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-675827.html
TDengine 連接字符串
Host=localhost;Port=6030;Username=root;Password=taosdata;Database=power
TDengine 客戶端SDK安裝
當(dāng)前程序需要安裝Sdk才能連接數(shù)據(jù)庫(kù)
https://docs.taosdata.com/connector
?
TDengine Nuegt安裝
下面是NUGET安裝
SqlSugar.TDengineCore SqlSugarCore
執(zhí)行SQL
//建庫(kù) db.Ado.ExecuteCommand("CREATE DATABASE IF NOT EXISTS power WAL_RETENTION_PERIOD 3600"); //建超級(jí)表 db.Ado.ExecuteCommand("CREATE STABLE IF NOT EXISTS MyTable (ts TIMESTAMP, current FLOAT, voltage INT, phase FLOAT) TAGS (location BINARY(64), groupId INT)"); //創(chuàng)建子表 db.Ado.ExecuteCommand(@"create table IF NOT EXISTS MyTable01 using MyTable tags('California.SanFrancisco',1)"); //insert sql //db.Ado.ExecuteCommand(insrtSql); //查詢子表 var dt = db.Ado.GetDataTable("select * from MyTable01"); //查詢超級(jí)表 var dt2 = db.Ado.GetDataTable("select * from MyTable");
單表查詢
var list2 = db.Queryable<MyTable02>().Where(it => it.name == "測(cè)試2").ToList(); var list22 = db.Queryable<MyTable02>().Where(it => it.voltage == 222).ToList(); var list222 = db.Queryable<MyTable02>().Where(it => it.phase == 1.2).ToList(); var list2222 = db.Queryable<MyTable02>().Where(it => it.isdelete == true).ToList();
聯(lián)表查詢
//聯(lián)表查詢:不支持left join只能這樣 var list101= db.Queryable<MyTable02, MyTable02>((x, y) => x.ts == y.ts) .Select((x,y) => new { xts=x.ts, yts=y.ts }).ToList();
函數(shù)用法
//模糊查詢 var list3 = db.Queryable<MyTable02>().Where(it => it.name.Contains("a")).ToList(); //時(shí)間差函數(shù) var list31 = db.Queryable<MyTable02>().Select(it => new { diff = SqlFunc.DateDiff(DateType.Day, it.ts, DateTime.Now), time=it.ts }).ToList(); //時(shí)間加1天 var list32 = db.Queryable<MyTable02>().Select(it => new { addTime = SqlFunc.DateAdd(it.ts,1, DateType.Day), oldime = it.ts }).ToList(); //自定義函數(shù):實(shí)現(xiàn)時(shí)間加1天 var list33 = db.Queryable<MyTable02>().Select(it => new { addTime =SqlFunc.MappingColumn<DateTime>(" `ts`+1d "), oldime = it.ts }).ToList();
分頁(yè)查詢
//分頁(yè) var Count = 0; var list4 = db.Queryable<MyTable02>().Where(it => it.voltage == 111) .ToPageList(1, 2, ref Count);
插入
超級(jí)表是不能插入的,我們只插入子表
//批量插入子表 db.Insertable(GetInsertDatas()).ExecuteCommand(); //子表實(shí)體 public class MyTable02 { [SugarColumn(IsPrimaryKey =true)] public DateTime ts { get; set; } public float current { get; set; } public bool isdelete { get; set; } public string name { get; set; } public int voltage { get; set; } public float phase { get; set; } [SugarColumn(IsOnlyIgnoreInsert =true,IsOnlyIgnoreUpdate =true)]//Tags字段禁止插入 public string location { get; set; } [SugarColumn(IsOnlyIgnoreInsert = true, IsOnlyIgnoreUpdate = true)]//Tags字段禁止插入 public int groupId { get; set; } }
刪除數(shù)據(jù)
只能范圍刪除不能直接等于刪除
var count = db.Deleteable<MyTable02>().Where(it => it.ts>time).ExecuteCommand();
源碼和DEMO
找到TDengineTests文件夾
https://github.com/DotNetNext/SqlSugar
?
?
SqlSugar 下面打算支持?Mongodb ,讓Mongodb也能在ORM中愉快使用,預(yù)計(jì)會(huì)在今年12月份左右開發(fā)完成文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-675827.html
?
到了這里,關(guān)于.NET 操作 TDengine .NET ORM的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!