diff --git a/Src/Asp.NetCore2/SqlSugar.TDengineCore/STableAttribute.cs b/Src/Asp.NetCore2/SqlSugar.TDengineCore/STableAttribute.cs new file mode 100644 index 000000000..7d9bc2985 --- /dev/null +++ b/Src/Asp.NetCore2/SqlSugar.TDengineCore/STableAttribute.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace SqlSugar.TDengine +{ + public class STableAttribute:Attribute + { + public string Tags { get; set; } + public string STablelName { get; set; } + } +} diff --git a/Src/Asp.NetCore2/SqlSugar.TDengineCore/TDengine/CodeFirst/TDengineCodeFirst.cs b/Src/Asp.NetCore2/SqlSugar.TDengineCore/TDengine/CodeFirst/TDengineCodeFirst.cs index 3c633f0dc..bfd6be906 100644 --- a/Src/Asp.NetCore2/SqlSugar.TDengineCore/TDengine/CodeFirst/TDengineCodeFirst.cs +++ b/Src/Asp.NetCore2/SqlSugar.TDengineCore/TDengine/CodeFirst/TDengineCodeFirst.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.Data; using System.Linq; +using System.Reflection; using System.Text; namespace SqlSugar.TDengine @@ -119,12 +120,19 @@ namespace SqlSugar.TDengine public override void NoExistLogic(EntityInfo entityInfo) { List dbColumns = new List(); - foreach (var item in entityInfo.Columns.Where(it=>it.PropertyName!= "TagsTypeId").OrderBy(it=>it.UnderType==typeof(DateTime)?0:1)) + foreach (var item in entityInfo.Columns.Where(it=>it.IsIgnore!=true).Where(it=>it.PropertyName!= "TagsTypeId").OrderBy(it=>it.UnderType==typeof(DateTime)?0:1)) { var addItem = EntityColumnToDbColumn(entityInfo, entityInfo.DbTableName, item); dbColumns.Add(addItem); } + var attr = entityInfo.Type.GetCustomAttribute(); + var oldTableName = entityInfo.DbTableName; + if (attr != null) + { + entityInfo.DbTableName += ("{stable}"+this.Context.Utilities.SerializeObject(attr)); + } this.Context.DbMaintenance.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 db079fb98..633cf4036 100644 --- a/Src/Asp.NetCore2/SqlSugar.TDengineCore/TDengine/DbMaintenance/TDengineDbMaintenance.cs +++ b/Src/Asp.NetCore2/SqlSugar.TDengineCore/TDengine/DbMaintenance/TDengineDbMaintenance.cs @@ -328,7 +328,7 @@ namespace SqlSugar.TDengine db.DbMaintenance.AddColumnRemark(item.DbColumnName, item.DbTableName, item.ColumnDescription); } - } + } //table remak if (entity.TableDescription != null) { @@ -414,6 +414,15 @@ namespace SqlSugar.TDengine string tableString = string.Format(this.CreateTableSql, this.SqlBuilder.GetTranslationTableName("STable_"+tableName.ToLower(isAutoToLowerCodeFirst)), string.Join(",\r\n", columnArray)); var childTableName = this.SqlBuilder.GetTranslationTableName(tableName.ToLower(isAutoToLowerCodeFirst)); var stableName = this.SqlBuilder.GetTranslationTableName("STable_"+tableName.ToLower(isAutoToLowerCodeFirst)); + var isAttr = tableName.Contains("{stable}"); + if (isAttr) + { + var attr = this.Context.Utilities.DeserializeObject(tableName.Split("{stable}").Last()); + stableName= this.SqlBuilder.GetTranslationTableName(attr.STablelName.ToLower(isAutoToLowerCodeFirst)); + tableString = string.Format(this.CreateTableSql, stableName, string.Join(",\r\n", columnArray)); + tableName=childTableName = this.SqlBuilder.GetTranslationTableName(tableName.Split("{stable}").First().ToLower(isAutoToLowerCodeFirst)); + STable.Tags =this.Context.Utilities.DeserializeObject>( attr.Tags); + } if (STable.Tags?.Any() == true) { var colums = STable.Tags.Select(it => this.SqlBuilder.GetTranslationTableName(it.Name)+ " VARCHAR(20) ");