当前位置: 首页 > news >正文

.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

 

相关文章:

.NET 操作 TDengine .NET ORM

TDengine 是国内比较流的时序库之一&#xff0c;支持群集并且免费&#xff0c;在.NET中资料比较少&#xff0c;这篇文章主要介绍SqlSugar ORM来操作TDengine 优点&#xff1a; 1、SqlSugar支持ADO.NET操作来实现TDengine&#xff0c;并且支持了常用的时间函数、支持联表、分…...

SQL Server对象类型(3)——视图(View)

1. 视图概念 与Oracle中的视图类似,SQL Server中的视图也是一种虚的、通过一个查询定义的逻辑对象,主要用于集中、简化、定制用户需求,控住其底层表安全,以及应用系统提供向后兼容等方面。 --注: 1)上述内容中的“虚的”,表示视图本身并不实际包含和存储数据,SQL Ser…...

【LeetCode】剑指 Offer <二刷>(1)

目录 前言&#xff1a; 题目&#xff1a;剑指 Offer 03. 数组中重复的数字 - 力扣&#xff08;LeetCode&#xff09; 题目的接口&#xff1a; 解题思路&#xff1a; 代码&#xff1a; 过啦&#xff01;&#xff01;&#xff01; 写在最后&#xff1a; 前言&#xff1a; …...

MySQL事物和存储引擎

事务 一、MySQL事务的概念 事务是一种机制、一个操作序列&#xff0c;包含了一组数据库操作命令&#xff0c;并且把所有的命令作为一个整体一起向系统提交或撤销操作请求&#xff0c;即这一组数据库命令要么都执行&#xff0c;要么都不执行。 事务是一个不可分割的工作逻辑单…...

代码随想录算法训练营Day51 | 309. 最佳买卖股票时机含冷冻期 | 714. 买卖股票的最佳时机含手续费 | 股票总结

文章目录 309. 最佳买卖股票时机含冷冻期标准 dp机智的分析解法 714. 买卖股票的最佳时机含手续费贪心算法 股票总结 309. 最佳买卖股票时机含冷冻期 题目链接 | 解题思路 标准 dp 本题多了冷却期的条件&#xff0c;将原本的两个状态变得更复杂了。变化在于&#xff0c;如果…...

C#,《小白学程序》第八课:列表(List)应用之二“编制高铁列车时刻表”

1 文本格式 /// <summary> /// 车站信息类 class /// </summary> public class Station { /// <summary> /// 编号 /// </summary> public int Id { get; set; } 0; /// <summary> /// 车站名 /// </summary&g…...

2、QT的信号与槽

一、什么是信号与槽 一个对象发送一个信号出去&#xff0c;另外一个对象接收到该信号后&#xff0c;会触发相应的槽函数 二、信号与槽的语法 connect(信号的发送者&#xff0c;SIGNAL(信号名称),信号的接收者,SLOT(槽函数)); 1、写法&#xff1a; QT 4 的写法 connect(sende…...

Java代码审计15之Apache log4j2漏洞

文章目录 1、log4j简介2、复现2.1、高版本测试2.2、测试代码2.3、补充之dns探测2.3.1、rmi、ldap也可以dnslog探测 2.3.2、dnslog外带信息 3、漏洞原理3.1、漏洞的危害大的背景3.2、具体的代码调试 4、靶场测试4.1、dns探测4.2、工具下载与使用4.3、测试4.4、手工可以测出&…...

c语言每日一练(13)

前言&#xff1a;每日一练系列&#xff0c;每一期都包含5道选择题&#xff0c;2道编程题&#xff0c;博主会尽可能详细地进行讲解&#xff0c;令初学者也能听的清晰。每日一练系列会持续更新&#xff0c;上学期间将看学业情况更新。 五道选择题&#xff1a; 1、程序运行的结果…...

H5 + C3基础(六)(2D转换transform 位移 旋转 缩放)

2D转换transform & 2D转换transform平移利用平移百分比优化盒子水平垂直居中 旋转指定2d变换的中心点 transform-origin 缩放2d转换简写 2D转换transform 所谓2D转换&#xff0c;就是在二维坐标系内进行各种操作&#xff0c;包括平移&#xff0c;转动&#xff0c;缩放等等…...

2023最新 Electron.js 桌面应用开发教程(基础篇)更新中

Electron是什么&#xff1f; Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium 和 Node.js 到 二进制的 Electron 允许您保持一个 JavaScript 代码代码库并创建 在Windows上运行的跨平台应用 macOS和Linux Electron Fiddle 运行实例 Ele…...

【ES】笔记-Set集合实践

JS <script>let arr[1,2,3,4,5,4,3,2,1];//1.数组去重let result0[...new Set(arr)];console.log(数组去重${result0});//2.交集let arr2[4,5,6,5,6];let result[...new Set(arr)].filter(item>{let s2new Set(arr2);//4 5 6if(s2.has(item)){return true;}else{retur…...

缺陷或负样本难以收集怎么办?使用生成式模型自动生成训练样本,image-to-image Stable diffusion

文章大纲 样本稀疏与对应的解决方案如何解决工业缺陷检测小样本问题参考1:AIDG(Artificial Intelligent Defect Generator)参考2:灵感来源 : Image-to-Image Diffusion Models参考文献与学习路径参考博文数据集算法缺陷检测库hugging face样本稀疏与对应的解决方案 1.数据层面…...

ZMTP协议

ZoreMQ Transport Protocol是一个传输层协议&#xff0c;用于ZMQ的连接的信息交互&#xff0c;本文档描述的是3.0协议&#xff0c;主要分析基于NULL Security Mechanism 协议语法 ZMTP由三部分组成&#xff0c;分别是 greeting、handshake、traffic 部分描述构成greeting描述…...

ubuntu18安装中文环境

1. 安装中文语言包 首先&#xff0c;我们需要安装中文语言包。打开终端&#xff0c;输入以下命令&#xff1a; sudo apt-get install language-pack-zh-hans 这个命令会下载并安装中文语言包。安装完成后&#xff0c;我们需要重新启动系统(reboot)。 2. 安装中文输入法 安…...

怎么提取视频中的音乐保存到本地?其实方法很简单

当你想要使用视频中的音乐时&#xff0c;你可以考虑将它从视频中提取出来。这可以用于制作音频样本集&#xff0c;制作铃声或其他音频素材&#xff0c;或者向其他人展示视频的音乐部分而无需显示视频本身。如果你是一位音乐制作人员&#xff0c;你可能会需要一些特定类型的音效…...

线性代数的学习和整理18:矩阵的秩的各种定理, 秩和维度(未完成)

目录 1 矩阵的秩 矩阵的秩 2 求秩的方法 矩阵的维度秩 矩阵的维度 向量的模&#xff0c;矩阵的模-没有把&#xff0c;难道是面积&#xff1f; 矩阵的平直概念 5 矩阵的初等变换&#xff08;矩阵等价概念的引出&#xff09; 1 为什么要引入矩阵的“秩” 这个概念&#x…...

UVa11374 Airport Express(Dijkstra)

题意 给出经济路线以及商业路线&#xff0c;在给出起始点s&#xff0c;终止点e&#xff0c;在只能使用其中一个商业路线 的情况下输出最短路径 思路 如果选择商业路线为从u到v&#xff0c;则需要从s->u,u->v&#xff0c;v->e点的路径最短。使用Dijkstra计算出从s点…...

hadoop的hdfs中避免因节点掉线产生网络风暴

hadoop的hdfs中避免因节点掉线产生网络风暴 控制节点掉线RPC风暴的参数 三个参数都是hdfs-site.xml中参数&#xff0c;具体可以参考apache hadoop官网&#xff0c;其实块的复制速度有两个方面决定&#xff0c;一是namenode分发任务的速度&#xff0c;二则是datanode之间进行复…...

2023年高教社杯 国赛数学建模思路 - 案例:最短时间生产计划安排

文章目录 0 赛题思路1 模型描述2 实例2.1 问题描述2.2 数学模型2.2.1 模型流程2.2.2 符号约定2.2.3 求解模型 2.3 相关代码2.4 模型求解结果 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 最短时…...

别再死记公式了!用Python和NumPy直观理解向量模长与矩阵范数

用Python和NumPy直观理解向量模长与矩阵范数 线性代数中的向量模长和矩阵范数常被视为抽象的数学符号&#xff0c;但它们在机器学习、图像处理和科学计算中扮演着核心角色。本文将用Python代码将这些概念可视化&#xff0c;让你在交互式实践中建立直觉理解。 1. 向量模长&#…...

Unity打包踩坑实录:用了EPPlus读取Excel,为什么PC打包后报错?附I18N.dll解决方案

Unity开发实战&#xff1a;EPPlus集成与PC打包的I18N.dll解决方案 在Unity项目开发中&#xff0c;Excel表格作为游戏配置数据的载体被广泛使用。EPPlus作为一款优秀的.NET Excel操作库&#xff0c;因其无需Office环境支持、性能优异等特点&#xff0c;成为Unity开发者的热门选择…...

如何高效管理macOS安装文件?这款跨平台工具给你答案

如何高效管理macOS安装文件&#xff1f;这款跨平台工具给你答案 【免费下载链接】gibMacOS Py2/py3 script that can download macOS components direct from Apple 项目地址: https://gitcode.com/gh_mirrors/gi/gibMacOS 在技术爱好者和系统管理员的世界里&#xff0c…...

C++跨平台线程池组件设计:从核心原理到工程实践

1. 项目概述&#xff1a;为什么我们需要一个跨平台的线程池组件&#xff1f;在软件开发&#xff0c;尤其是高性能服务端、桌面应用或游戏引擎的开发中&#xff0c;线程池&#xff08;Thread Pool&#xff09;是一个绕不开的核心基础设施。我从业十几年&#xff0c;从早期的单线…...

AR眼镜主板与光机定制开发:从核心需求到软硬件协同的工程实践

1. 项目概述&#xff1a;从“主板”与“光机”看AR眼镜的核心最近和几个做AR硬件和方案的朋友聊得比较多&#xff0c;大家普遍有个感觉&#xff1a;市面上关于AR眼镜的讨论&#xff0c;要么是概念满天飞&#xff0c;要么是成品评测&#xff0c;但真正深入到硬件底层&#xff0c…...

AI Agent在仓储分拣中的真实效能验证(2023-2024全国12家仓配中心压测报告首次公开)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AI Agent物流行业应用 AI Agent正深度重构物流行业的决策、执行与协同范式。区别于传统规则引擎或单一预测模型&#xff0c;AI Agent具备感知环境、自主规划、多步推理与动态反馈能力&#xff0c;可嵌入…...

VideoDownloadHelper:打破视频下载壁垒的智能解析引擎

VideoDownloadHelper&#xff1a;打破视频下载壁垒的智能解析引擎 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper 你是否曾遇到这样的情况&am…...

如何通过 TaoToken CLI 快速安装配置多模型调用环境

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 如何通过 TaoToken CLI 快速安装配置多模型调用环境 对于希望快速接入多个大模型的开发者而言&#xff0c;逐一配置不同工具的 API…...

为什么我总是想很多,却很难开始做?

为什么我总是想很多&#xff0c;却很难开始做&#xff1f; 有一种人&#xff0c;脑子从来停不下来。 走路在想&#xff0c;洗澡在想&#xff0c;睡前还在想。 想人生方向&#xff0c;想技术路线&#xff0c;想项目结构&#xff0c;想商业模式&#xff0c;想内容选题&#xff0c…...

对比直接使用厂商api体验taotoken在延迟与可用性上的差异

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 对比直接使用厂商 API 体验 Taotoken 在延迟与可用性上的差异 在构建依赖大模型能力的应用时&#xff0c;开发者通常会直接调用特定…...