.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-675827.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文件夹

 

 

SqlSugar 下面打算支持 Mongodb ,让Mongodb也能在ORM中愉快使用,预计会在今年12月份左右开发完成

 

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

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

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

相关文章

  • 时序数据库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日
    浏览(38)
  • TDengine函数大全-时序库特有函数

    以下内容来自 TDengine 官方文档 及 GitHub 内容 。 以下所有示例基于 TDengine 3.1.0.3 1.数学函数 2.字符串函数 3.转换函数 4.时间和日期函数 5.聚合函数 6.选择函数 7.时序数据库特有函数 8.系统函数 CSUM 功能说明 :累加和(Cumulative sum),输出行与输入行数相同。 返回结果类型 :

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

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

    2024年02月07日
    浏览(73)
  • 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日
    浏览(31)
  • 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日
    浏览(35)
  • 帆软报表 FineReport连接时序库 Elasticsearch(es),tdengine(涛思)

    这篇文章是本人在开发帆软报表所经历的踩坑以及解决的方案,回想起来由于网上没有太多的相关信息,在fr社区提问也没有太好的解决方案,解决起来也蛮坎坷的,但最后还是搞了下来,顺便整理一下发布出来,希望能给小伙伴们点帮助, 如要参考请全篇看完,有注意事项

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

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

    2024年02月14日
    浏览(41)
  • 基于DataX的海量时序数据迁移实战:从MySQL到TDengine3.x

    MySQL 数据库中,设备历史数据单表过亿,如何快速、低成本地迁移到 TDengine3.x 中? 从标题可以看出,我们使用的数据迁移/同步工具是 DataX ,数据源( Source )为传统的关系型数据库 MySQL ,目标库( Sink )为新型的具有场景特色的时序数据库 TDengine 。 DataX:是阿里云DataWor

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

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

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

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

    2024年02月11日
    浏览(33)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包