SQLSugar 支持 TDengine 超级表的使用指南
TDengine 是一款高性能、分布式的时序数据库,广泛应用于物联网、工业互联网等领域。其核心概念之一是超级表(Super Table),它类似于传统数据库中的表结构模板,允许用户通过标签(Tag)动态创建和管理子表。SQLSugar 作为一款流行的 ORM 框架,提供了对 TDengine 超级表的支持,使得开发者能够更方便地操作 TDengine 数据库。
本文将介绍如何使用 SQLSugar 操作 TDengine 的超级表,包括创建超级表、查询子表、插入数据等操作。
1. 创建超级表
在使用 TDengine 的超级表之前,首先需要在数据库中创建超级表。SQLSugar 提供了 CodeFirst
模式,可以通过代码自动创建表结构。
NUGET安装
SqlSugar.TDengineCore 最新
SqlSugarCore 最新
创建数据库对象
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | //程序启动时加入 InstanceFactory.CustomAssemblies = new System.Reflection.Assembly[] { typeof (TDengineProvider).Assembly }; //创建 db对象 var db = new SqlSugarClient( new ConnectionConfig() { DbType = SqlSugar.DbType.TDengine, ConnectionString = Config.ConnectionString, IsAutoCloseConnection = true , ConfigureExternalServices = new ConfigureExternalServices() { EntityService= (property, column) => { if (column.SqlParameterDbType == null ) { //需要给列加上通用转换,这样实体就不需要一个一个转了 column.SqlParameterDbType = typeof (CommonPropertyConvert); } } } }); // 创建超级表 db.CodeFirst.InitTables<SUsingTagModel>(); |
在上述代码中,SUsingTagModel
是一个实体类,它映射了 TDengine 中的超级表结构。通过 CodeFirst.InitTables
方法,SQLSugar 会自动在 TDengine 中创建对应的超级表。
2. 定义超级表实体类
在 SQLSugar 中,超级表的实体类需要使用 STableAttribute
来标记,并通过 SugarColumn
来定义字段属性。
-
STableAttribute
用于标记该类为超级表,STableName
指定超级表的名称,Tag1
指定标签字段。 -
SugarColumn
用于定义字段属性,IsPrimaryKey
表示该字段为主键。
3. 查询超级表数据
SQLSugar 提供了 AsTDengineSTable
方法,用于将查询操作映射到 TDengine 的超级表。
查询所有数据
1 | var list1 = db.Queryable<SUsingTagModel>().AsTDengineSTable().ToList(); |
查询特定子表数据
通过 Where
条件可以查询特定标签的子表数据。
1 2 3 4 5 | // 查询子表A var tagA = db.Queryable<SUsingTagModel>().AsTDengineSTable().Where(it => it.Tag1 == "a" ).ToList(); // 查询子表B var tagB = db.Queryable<SUsingTagModel>().AsTDengineSTable().Where(it => it.Tag1 == "b" ).ToList(); |
4. 插入数据并动态创建子表
在插入数据时,SQLSugar 支持根据标签值动态创建子表。通过 SetTDengineChildTableName
方法,可以指定子表的命名规则。
-
SetTDengineChildTableName
方法用于指定子表的命名规则,stableName
是超级表的名称,it
是当前插入的数据对象。 -
ExecuteCommand
方法执行插入操作,并自动创建子表。
5. 动态映射超级表名称
在某些场景下,可能需要动态修改超级表的名称。SQLSugar 提供了 MappingSTableName
方法,可以在运行时动态映射超级表名称。
1 | db.MappingSTableName<SUsingTagModel>( "newSName001" ); |
-
MappingSTableName
方法用于动态修改超级表的名称,替换实体类中STableAttribute
的STableName
属性。
6. 总结
通过 SQLSugar 对 TDengine 超级表的支持,开发者可以更方便地操作 TDengine 数据库。本文介绍了如何使用 SQLSugar 创建超级表、查询子表、插入数据以及动态映射超级表名称。这些功能使得 SQLSugar 成为处理 TDengine 数据的强大工具,尤其适用于物联网、工业互联网等时序数据处理场景。
在实际开发中,开发者可以根据业务需求灵活运用这些功能,提升开发效率并优化数据库操作性能。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
2016-02-27 Sql [hierarchyid]类型如何动态插入层级数据