.NET 操作 TDengine .NET ORM

TDengine 

是国内比较流的时序库之一,支持群集并且免费,在.NET中资料比较少,这篇文章主要介绍SqlSugar ORM来操作TDengine

优点:

1、SqlSugar支持ADO.NET操作来实现TDengine,并且支持了常用的时间函数、支持联表、分页和批量插入和删等操作

2、使用了原生连接(非http连接 )保证了TDengine性能

 

TDengine 连接字符串

Host=localhost;Port=6030;Username=root;Password=taosdata;Database=power

TDengine 客户端SDK安装

当前程序需要安装Sdk才能连接数据库

https://docs.taosdata.com/connector

TDengine Nuegt安装

下面是NUGET安装

SqlSugar.TDengineCore
SqlSugarCore

执行SQL

    //建库db.Ado.ExecuteCommand("CREATE DATABASE IF NOT EXISTS power WAL_RETENTION_PERIOD 3600");//建超级表db.Ado.ExecuteCommand("CREATE STABLE IF NOT EXISTS  MyTable (ts TIMESTAMP, current FLOAT, voltage INT, phase FLOAT) TAGS (location BINARY(64), groupId INT)");//创建子表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");//查询超级表var dt2 = db.Ado.GetDataTable("select * from MyTable");

单表查询

var list2 = db.Queryable<MyTable02>().Where(it => it.name == "测试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();

联表查询

  //联表查询:不支持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();

函数用法

  //模糊查询var list3 = db.Queryable<MyTable02>().Where(it => it.name.Contains("a")).ToList();//时间差函数 var list31 = db.Queryable<MyTable02>().Select(it =>new{diff = SqlFunc.DateDiff(DateType.Day, it.ts, DateTime.Now),time=it.ts}).ToList();//时间加1天var list32 = db.Queryable<MyTable02>().Select(it =>new{addTime = SqlFunc.DateAdd(it.ts,1, DateType.Day),oldime = it.ts}).ToList();//自定义函数:实现时间加1天var list33 = db.Queryable<MyTable02>().Select(it =>new{addTime =SqlFunc.MappingColumn<DateTime>(" `ts`+1d "),oldime = it.ts}).ToList();

分页查询

   //分页var Count = 0;var list4 = db.Queryable<MyTable02>().Where(it => it.voltage == 111).ToPageList(1, 2, ref Count);

插入

超级表是不能插入的,我们只插入子表

//批量插入子表db.Insertable(GetInsertDatas()).ExecuteCommand();//子表实体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; }}

删除数据

只能范围删除不能直接等于删除

var count = db.Deleteable<MyTable02>().Where(it => it.ts>time).ExecuteCommand();

源码和DEMO

找到TDengineTests文件夹

https://github.com/DotNetNext/SqlSugar

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1621936.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

如何注册一个免费的网站空间和域名

https://www.jianshu.com/p/016c83f70d43 前几天想搞个网站玩玩&#xff0c;于是就上网搜哪里可以注册免费的网站空间和域名&#xff0c;折腾了好几天都没注册成&#xff0c;国内好像已经没有免费的了。只好用英文去搜国外的网站&#xff0c;才找到了一个能注册成功的&#xff…

MybatisPlus 项目中使用

大家好 , 我是苏麟 , 今天带来 MybatisPlus 的简单使用 . 官方网站 : MyBatis-Plus (baomidou.com) 开始使用 初步体验 引入依赖 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version…

探秘腾讯Android手机游戏平台之不安装游戏APK直接启动法

探秘腾讯Android手机游戏平台之不安装游戏APK直接启动法 2011年09月18日 ⁄ 移动开发 ⁄ 评论数 38 ⁄ 被围观 8,791 前言 相信这样一个问题&#xff0c;大家都不会陌生&#xff0c; “有什么的方法可以使Android的程序APK不用安装&#xff0c;而能够直接启动”。 发现最后的…

群玩小游戏sdk一键接入

群玩提供第三方用户互动内容服务&#xff0c;拥有“你画我猜”、“谁是卧底”、“豆腐王国”、“猜歌名” 等多款互动竞猜类游戏、智能机器人接入服务&#xff0c;适合直播、社交、社群行业&#xff0c;可以自定义设计玩法&#xff0c;页面精美有趣&#xff0c;接入方便快捷&am…

职业成长面对面交流会

职业成长面对面交流会 ——微软高级主管欧琼老师讲座2009年4月12日星期日上午十点半由电子工业出版社博文视点资讯有限公司隆重举办一场“职业成长面对面交流会”&#xff0c;主讲老师是《微软360度-成功和成长》主要作者 微软总部高级主管 欧琼老师&#xff0c;精彩的讲座在开…

游戏客户端面试(Unity)

推荐阅读&#xff1a; 我的CSDN 我的博客园 QQ群&#xff1a;704621321 我的个人博客 一。最开始的两家公司笔试面试题目 一家公司是学校聘请研究教育方面VR课件的公司&#xff0c;面试没几天&#xff0c;就收到了面试通过的消息&#xff0c;后面因为通过了另一家游戏公司而拒绝…

Unity - 微信小游戏

总参考&#xff1a;Unity WebGL 微信小游戏适配方案(公测) 安装与使用 下载 Unity插件&#xff0c;并导入至游戏项目中&#xff0c;版本更新请查看更新日志 请查阅推荐引擎版本&#xff0c;安装时选择WebGL组件 最终选择Unity2021.2.5f1c1InstantGame前往Node官网安装长期稳定…

聊天群内组局互动小游戏

“找我61”互动小游戏嵌入到聊天群内&#xff0c;会给社交应用&#xff08;产品&#xff09;增加不少人气&#xff0c;带来更多活力。 新颖社区社交产品“知多视广”架构构思设想

活动预告 | 与大神面对面,移动游戏开发者必须掌握的十大技巧

上半年&#xff0c;国内游戏下载量对比2019年下半年上涨将近50%&#xff0c;在用户旺盛的需求下&#xff0c;游戏行业迎来了绝佳的发展机遇。在市场火爆的背后&#xff0c;随着用户需求的多样化、时间的碎片化&#xff0c;一些因开发繁琐、资源不足的问题频频出现&#xff0c;让…

游戏大厅 从基础开始(1)——最简单的关系,用户与房间

游戏大厅 从基础开始&#xff08;1&#xff09; ——最简单的关系&#xff0c;用户与房间。 做游戏 就好像写一篇简单的记叙文 作为小学语文大纲要求 记叙文需要完整地叙述&#xff1a; 时间&#xff0c;地点&#xff0c;人物&#xff0c;事件 也就是 WHEN &#xff0c; WH…

RK3399平台开发系列讲解(存储篇)Linux 存储系统的 I/O 栈

平台内核版本安卓版本RK3399Linux4.4Android7.1🚀返回专栏总目录 文章目录 一、Linux 存储系统全景二、Linux 存储系统的缓存沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍 Linux 存储系统的 I/O 原理。 一、Linux 存储系统全景 我们可以把 Linux 存储系…

解决MASM32代码汇编出错: error A2181: initializer must be a string or single item

最近用MASM32编程更新SysInfo&#xff0c;增加对IPv6连接信息的收集&#xff0c;使用到了 typedef struct _MIB_TCP6ROW_OWNER_MODULE {UCHAR ucLocalAddr[16];DWORD dwLocalScopeId;DWORD dwLocalPort;UCHAR ucRemoteAddr[16];DWORD …

文本分类任务

文章目录 引言1. 文本分类-使用场景2. 自定义类别任务3. 贝叶斯算法3.1 预备知识3.2 贝叶斯公式3.3 贝叶斯公式的应用3.4 贝叶斯公式在NLP中的应用3.5 贝叶斯公式-文本分类3.6 代码实现3.7 贝叶斯算法的优缺点 4. 支持向量机4.1 支持向量机-核函数4.2 支持向量机-解决多分类4.3…

android系统启动流程之zygote如何创建SystemServer进程

SystemServer:是独立的进程&#xff0c;主要工作是管理服务的&#xff0c;它将启动大约90种服务Services. 它主要承担的职责是为APP的运行提供各种服务&#xff0c;像AMS,WMS这些服务并不是一个独立的进程&#xff0c; 它们其实都是SystemServer进程中需要管理的的众多服务之一…

从零到富:探索CSGO搬砖项目的无限可能

在如今互联网时代&#xff0c;有一项令人惊叹的项目正悄然兴起&#xff0c;它就是CSGO搬砖项目。作为一个从零开始的家伙&#xff0c;我亲身经历了这个项目的神奇魅力&#xff0c;每天轻松赚取几十上百的收益&#xff0c;无风险&#xff0c;低成本。今天&#xff0c;我将带领大…

Redis—Redis介绍(是什么/为什么快/为什么做MySQL缓存等)

一、Redis是什么 Redis 是一种基于内存的数据库&#xff0c;对数据的读写操作都是在内存中完成&#xff0c;因此读写速度非常快&#xff0c;常用于缓存&#xff0c;消息队列、分布式锁等场景。 Redis 提供了多种数据类型来支持不同的业务场景&#xff0c;比如 String(字符串)、…

围棋与育种

最近因为娃子报名了围棋课&#xff0c;我本着交一次课学两个人的态度&#xff0c;入门围棋&#xff0c;买了些书&#xff0c;听了些课&#xff0c;有所得。学了两个多月&#xff0c;现在6级水平&#xff0c;了解了基本的攻杀技巧&#xff0c;会判断输赢。 下面截图是今天的一盘…

QQ号大规模被盗与你我有什么关系?你我该如何做?

QQ号大规模被盗与你我有什么关系&#xff1f;你我该如何做&#xff1f; 时值QQ号大规模被告事件已经过去多天&#xff0c;今天&#xff0c;我们再次回顾一下此次事件的经过&#xff1a; 1、大规模用户被盗号。 2、不法分子用盗得账号向家人、朋友及其他联系人发送不雅图片。 …

wireshark抓包QQ号

过滤栏输入oicq&#xff0c;然后随便打开一个数据包&#xff0c;就可看到其qq号。 查看移动端QQ的账号 因为是用的是TCP协议&#xff0c;而TCP数据包众多&#xff0c;所以不方便过滤。 但是我发现在info栏中带有scotty-ft字样的数据包中可以找到qq号。你可以按ctrlF选择字符串过…

QQ号1941663132是一个诈骗

我一个拼多多订单(20元)中通运单丢失; 然后两个自称物流公司的电话联系我:19141980127/18988189942; 说是赔偿我 100 多块; 叫我订单截图发给他们客服QQ1941663132; 加了QQ、截图隐私信息打马赛克发了他; 对方给我一个二维码,我解析了一下,是一个 HTTP 协议不安全的网址…