diff --git a/Src/Asp.NetCore2/SqlSugar.TDengineCore/TDengine/CodeFirst/TDengineCodeFirst.cs b/Src/Asp.NetCore2/SqlSugar.TDengineCore/TDengine/CodeFirst/TDengineCodeFirst.cs index 4c5cd3417..810b95fff 100644 --- a/Src/Asp.NetCore2/SqlSugar.TDengineCore/TDengine/CodeFirst/TDengineCodeFirst.cs +++ b/Src/Asp.NetCore2/SqlSugar.TDengineCore/TDengine/CodeFirst/TDengineCodeFirst.cs @@ -237,7 +237,9 @@ namespace SqlSugar.TDengine && it.DbColumnName?.ToLower() != attr.Tag4?.ToLower() ).ToList(); } - this.Context.DbMaintenance.CreateTable(entityInfo.DbTableName, dbColumns); + var dbMain = (TDengineDbMaintenance)this.Context.DbMaintenance; + dbMain.EntityInfo = entityInfo; + dbMain.CreateTable(entityInfo.DbTableName, dbColumns); entityInfo.DbTableName = oldTableName; } protected override DbColumnInfo EntityColumnToDbColumn(EntityInfo entityInfo, string tableName, EntityColumnInfo item) diff --git a/Src/Asp.NetCore2/SqlSugar.TDengineCore/TDengine/DbMaintenance/TDengineDbMaintenance.cs b/Src/Asp.NetCore2/SqlSugar.TDengineCore/TDengine/DbMaintenance/TDengineDbMaintenance.cs index 43a6da167..f17b69dd4 100644 --- a/Src/Asp.NetCore2/SqlSugar.TDengineCore/TDengine/DbMaintenance/TDengineDbMaintenance.cs +++ b/Src/Asp.NetCore2/SqlSugar.TDengineCore/TDengine/DbMaintenance/TDengineDbMaintenance.cs @@ -10,6 +10,8 @@ namespace SqlSugar.TDengine { public class TDengineDbMaintenance : DbMaintenanceProvider { + public EntityInfo EntityInfo { get; set; } + #region DML protected override string GetViewInfoListSql => throw new NotImplementedException(); @@ -427,6 +429,15 @@ namespace SqlSugar.TDengine var colums = STable.Tags.Select(it => this.SqlBuilder.GetTranslationTableName(it.Name)+ " VARCHAR(100) "); tableString=tableString.Replace(SqlBuilder.GetTranslationColumnName("TagsTypeId"), string.Join(",", colums)); tableString = tableString.Replace(" VARCHAR(100) VARCHAR(100)", " VARCHAR(100)"); + foreach (var item in STable.Tags) + { + var tagColumn = this.EntityInfo.Columns.FirstOrDefault(it => it.DbColumnName == item.Name || it.PropertyName == item.Name); + if (tagColumn != null&&tagColumn.UnderType!=UtilConstants.StringType) + { + var tagType= new TDengineDbBind() { Context=this.Context }.GetDbTypeName(tagColumn.UnderType.Name); + tableString = tableString.Replace($"{SqlBuilder.GetTranslationColumnName(tagColumn.DbColumnName)} VARCHAR(100)", $"{SqlBuilder.GetTranslationColumnName(tagColumn.DbColumnName)} {tagType} "); + } + } } this.Context.Ado.ExecuteCommand(tableString); var createChildSql = $"CREATE TABLE IF NOT EXISTS {childTableName} USING {stableName} TAGS('default')";