.NET 操作 TDengine .NET ORM

这篇具有很好参考价值的文章主要介绍了.NET 操作 TDengine .NET ORM。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

TDengine 

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

优点:

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

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

 文章来源地址https://www.toymoban.com/news/detail-676277.html

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,.net,tdengine,数据库

 

到了这里,关于.NET 操作 TDengine .NET ORM的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • TDengine时序数据库学习使用

    数据库要求: 1.目前服务器只能在linux运行,先安装服务器版本v1 2.下载与v1完全匹配的客户端版本v1(客户端与服务器的版本号不匹配可能访问不了服务器) 安装服务器注意,安装教程: 使用安装包立即开始 | TDengine 文档 | 涛思数据! 软件下载地址: 所有下载链接 - TDengine

    2024年02月07日
    浏览(45)
  • 时序数据库TDengine窗口函数

    select ts, lp_index, max(lp_value),  lp_project_id, lp_variable_uri,  lp_time_ticks, lp_value_type_value, lp_value, lp_unit from weixingdata.tdm_lp_original_data where  lp_time_ticks = \\\'2023-11-27 12:38:41\\\'                 and lp_time_ticks =  \\\'2023-11-27 14:38:41\\\'       and  lp_project_id = \\\'0A66F139-F8BF-485A-9F3B-DECD40C3E6D9\\\'      and

    2024年02月20日
    浏览(49)
  • TDengine时序数据库通俗易懂教程

    1.1产品简介 TDengine 是一款开源、高性能、云原生的时序数据库,且针对物联网、车联网、工业互联网、金融、IT运维等场景进行了优化。TDengine的代码,包括集群功能,都在 GNU AGPL v3.0 下开源。除核心的时序数据库功能外,TDengine还提供缓存、数据订阅、流式计算等其它功能以

    2024年02月07日
    浏览(80)
  • TDengine(taos)数据库导出历史数据

    业务需求:导出某个站点的累计充电量,累计放电量,光伏总放电量,进线总功率的所有数据‘ 提示Database changed;即为使用成功; realId即为我想要导出的表,需要导出里面所有的字段; select * from yc_1680037147048042498_1011 /data.csv; 运行即可得到.csv文件; 注意导出路径里不能有

    2024年02月08日
    浏览(68)
  • TDengine时序数据库java连接代码

    spring:         datasource:                 tdengine:                     lazy: true                     driverClassName: com.taosdata.jdbc.rs.RestfulDriver                     url: jdbc:TAOS-RS://127.0.0.1:6041/zjrecharge?timezone=UTC-8charset=utf-8                  

    2024年01月20日
    浏览(39)
  • Tdengine 时序数据库-安装与客户端连接

    使用 TDengine 时序数据库的版本是 2.4.0.0 使用的安装RPM的安装方便安装 TDengine-server-2.4.0.0-Linux-x64.rpm 1. 安装指令:  rpm -ivh TDengine-server-2.4.0.0-Linux-x64.rpm  2. 启停服务和查看状态 systemctl start taosd systemctl stop taosd systemctl restart taosd systemctl status taosd 3.修改密码 直接输入taos 就可以直

    2024年02月12日
    浏览(45)
  • 陶建辉在“2023 可信数据库发展大会”发表演讲,TDengine 入选中国数据库产业图谱

    当前,全球数字经济加速发展,数据正在成为重组全球要素资源、重塑全球经济结构、改变全球竞争格局的关键力量。数据库作为存储与处理数据的关键技术,在数字经济大浪潮下,全球数据库产业中新技术、新业态、新模式不断涌现。 7 月 4 日,由中国通信标准化协会和中

    2024年02月12日
    浏览(64)
  • 时序数据库 TDengine 与 WhaleStudio 完成相互兼容性测试认证

    近年来,开源及其价值获得社会各界的广泛认可,无论是国家政策导向还是企业数字化转型,都在加速拥抱开源。对于如操作系统、数据库等基础软件来说,开源更是成为驱动技术创新的有力途径。 在此背景下,近日,涛思数据自主研发的时序数据库(Time Series Database)TDe

    2024年02月14日
    浏览(51)
  • 打破数据孤岛!时序数据库 TDengine 与创意物联感知平台完成兼容性互认

    新型物联网实现良好建设的第一要务就是打破信息孤岛,将数据汇聚在平台统一处理,实现数据共享,放大物联终端的行业价值,实现系统开放性,以此营造丰富的行业应用环境。在此背景下,物联感知平台应运而生,成为推动智慧城市建设,强化物联网感知设施跨行业、跨

    2024年02月11日
    浏览(43)
  • 时序数据库 TDengine 与腾讯云多个产品线完成兼容性互认证明

    随着数字经济蓬勃发展,数据成为驱动企业数字化转型的关键生产要素,如何加强对数据资源的治理利用、实现数据洞察、激活数据价值正成为亟待解决的问题。在此背景下,数据库与操作系统、云平台等国产化软件相互结合赋能成为解决问题的思路之一。 近日,经过数月努

    2024年02月11日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包