Bläddra i källkod

😁代码调整(代码生成相关) 感谢@koy07555

zuohuaijun 2 år sedan
förälder
incheckning
113c17b829

+ 184 - 184
Admin.NET/Admin.NET.Core/Entity/SysCodeGenConfig.cs

@@ -1,189 +1,189 @@
-// 麻省理工学院许可证
-//
-// 版权所有 (c) 2021-2023 zuohuaijun,大名科技(天津)有限公司  联系电话/微信:18020030720  QQ:515096995
-//
-// 特此免费授予获得本软件的任何人以处理本软件的权利,但须遵守以下条件:在所有副本或重要部分的软件中必须包括上述版权声明和本许可声明。
-//
-// 软件按“原样”提供,不提供任何形式的明示或暗示的保证,包括但不限于对适销性、适用性和非侵权的保证。
-// 在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是因合同、侵权或其他方式引起的,与软件或其使用或其他交易有关。
-
-namespace Admin.NET.Core;
-
-/// <summary>
-/// 代码生成字段配置表
-/// </summary>
-[SugarTable(null, "代码生成字段配置表")]
-[SystemTable]
-public class SysCodeGenConfig : EntityBase
-{
-    /// <summary>
-    /// 代码生成主表Id
-    /// </summary>
-    [SugarColumn(ColumnDescription = "主表Id")]
-    public long CodeGenId { get; set; }
-
-    /// <summary>
-    /// 数据库字段名
-    /// </summary>
-    [SugarColumn(ColumnDescription = "字段名称", Length = 128)]
-    [Required, MaxLength(128)]
+// 麻省理工学院许可证
+//
+// 版权所有 (c) 2021-2023 zuohuaijun,大名科技(天津)有限公司  联系电话/微信:18020030720  QQ:515096995
+//
+// 特此免费授予获得本软件的任何人以处理本软件的权利,但须遵守以下条件:在所有副本或重要部分的软件中必须包括上述版权声明和本许可声明。
+//
+// 软件按“原样”提供,不提供任何形式的明示或暗示的保证,包括但不限于对适销性、适用性和非侵权的保证。
+// 在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是因合同、侵权或其他方式引起的,与软件或其使用或其他交易有关。
+
+namespace Admin.NET.Core;
+
+/// <summary>
+/// 代码生成字段配置表
+/// </summary>
+[SugarTable(null, "代码生成字段配置表")]
+[SystemTable]
+public class SysCodeGenConfig : EntityBase
+{
+    /// <summary>
+    /// 代码生成主表Id
+    /// </summary>
+    [SugarColumn(ColumnDescription = "主表Id")]
+    public long CodeGenId { get; set; }
+
+    /// <summary>
+    /// 数据库字段名
+    /// </summary>
+    [SugarColumn(ColumnDescription = "字段名称", Length = 128)]
+    [Required, MaxLength(128)]
     public virtual string ColumnName { get; set; }
 
-    /// <summary>
-    /// 实体属性名
-    /// </summary>
-    [SugarColumn(ColumnDescription = "属性名称", Length = 128)]
-    [Required, MaxLength(128)]
+    /// <summary>
+    /// 实体属性名
+    /// </summary>
+    [SugarColumn(ColumnDescription = "属性名称", Length = 128)]
+    [Required, MaxLength(128)]
     public virtual string PropertyName { get; set; }
 
-    /// <summary>
-    /// 字段数据长度
-    /// </summary>
-    [SugarColumn(ColumnDescription = "字段数据长度", DefaultValue = "0")]
-    public virtual int ColumnLength { get; set; }
-
-    /// <summary>
-    /// 字段描述
-    /// </summary>
-    [SugarColumn(ColumnDescription = "字段描述", Length = 128)]
-    [MaxLength(128)]
-    public string? ColumnComment { get; set; }
-
-    /// <summary>
-    /// .NET数据类型
-    /// </summary>
-    [SugarColumn(ColumnDescription = "NET数据类型", Length = 64)]
-    [MaxLength(64)]
-    public string? NetType { get; set; }
-
-    /// <summary>
-    /// 作用类型(字典)
-    /// </summary>
-    [SugarColumn(ColumnDescription = "作用类型", Length = 64)]
-    [MaxLength(64)]
-    public string? EffectType { get; set; }
-
-    /// <summary>
-    /// 外键实体名称
-    /// </summary>
-    [SugarColumn(ColumnDescription = "外键实体名称", Length = 64)]
-    [MaxLength(64)]
-    public string? FkEntityName { get; set; }
-
-    /// <summary>
-    /// 外键表名称
-    /// </summary>
-    [SugarColumn(ColumnDescription = "外键表名称", Length = 128)]
-    [MaxLength(128)]
-    public string? FkTableName { get; set; }
-
-    /// <summary>
-    /// 外键显示字段
-    /// </summary>
-    [SugarColumn(ColumnDescription = "外键显示字段", Length = 64)]
-    [MaxLength(64)]
-    public string? FkColumnName { get; set; }
-
-    /// <summary>
-    /// 外键显示字段.NET类型
-    /// </summary>
-    [SugarColumn(ColumnDescription = "外键显示字段.NET类型", Length = 64)]
-    [MaxLength(64)]
-    public string? FkColumnNetType { get; set; }
-
-    /// <summary>
-    /// 字典编码
-    /// </summary>
-    [SugarColumn(ColumnDescription = "字典编码", Length = 64)]
-    [MaxLength(64)]
-    public string? DictTypeCode { get; set; }
-
-    /// <summary>
-    /// 列表是否缩进(字典)
-    /// </summary>
-    [SugarColumn(ColumnDescription = "列表是否缩进", Length = 8)]
-    [MaxLength(8)]
-    public string? WhetherRetract { get; set; }
-
-    /// <summary>
-    /// 是否必填(字典)
-    /// </summary>
-    [SugarColumn(ColumnDescription = "是否必填", Length = 8)]
-    [MaxLength(8)]
-    public string? WhetherRequired { get; set; }
-
-    /// <summary>
-    /// 是否是查询条件
-    /// </summary>
-    [SugarColumn(ColumnDescription = "是否是查询条件", Length = 8)]
-    [MaxLength(8)]
-    public string? QueryWhether { get; set; }
-
-    /// <summary>
-    /// 查询方式
-    /// </summary>
-    [SugarColumn(ColumnDescription = "查询方式", Length = 16)]
-    [MaxLength(16)]
-    public string? QueryType { get; set; }
-
-    /// <summary>
-    /// 列表显示
-    /// </summary>
-    [SugarColumn(ColumnDescription = "列表显示", Length = 8)]
-    [MaxLength(8)]
-    public string? WhetherTable { get; set; }
-
-    /// <summary>
-    /// 增改
-    /// </summary>
-    [SugarColumn(ColumnDescription = "增改", Length = 8)]
-    [MaxLength(8)]
-    public string? WhetherAddUpdate { get; set; }
-
-    /// <summary>
-    /// 主键
-    /// </summary>
-    [SugarColumn(ColumnDescription = "主键", Length = 8)]
-    [MaxLength(8)]
-    public string? ColumnKey { get; set; }
-
-    /// <summary>
-    /// 数据库中类型(物理类型)
-    /// </summary>
-    [SugarColumn(ColumnDescription = "数据库中类型", Length = 64)]
-    [MaxLength(64)]
-    public string? DataType { get; set; }
-
-    /// <summary>
-    /// 是否通用字段
-    /// </summary>
-    [SugarColumn(ColumnDescription = "是否通用字段", Length = 8)]
-    [MaxLength(8)]
-    public string? WhetherCommon { get; set; }
-
-    /// <summary>
-    /// 显示文本字段
-    /// </summary>
-    [SugarColumn(ColumnDescription = "显示文本字段", ColumnDataType = StaticConfig.CodeFirst_BigString)]
-    public string? DisplayColumn { get; set; }
-
-    /// <summary>
-    /// 选中值字段
-    /// </summary>
-    [SugarColumn(ColumnDescription = "选中值字段", Length = 128)]
-    [MaxLength(128)]
-    public string? ValueColumn { get; set; }
-
-    /// <summary>
-    /// 父级字段
-    /// </summary>
-    [SugarColumn(ColumnDescription = "父级字段", Length = 128)]
-    [MaxLength(128)]
-    public string? PidColumn { get; set; }
-
-    /// <summary>
-    /// 排序
-    /// </summary>
-    [SugarColumn(ColumnDescription = "排序")]
-    public int OrderNo { get; set; } = 100;
+    /// <summary>
+    /// 字段数据长度
+    /// </summary>
+    [SugarColumn(ColumnDescription = "字段数据长度", DefaultValue = "0")]
+    public int ColumnLength { get; set; }
+
+    /// <summary>
+    /// 字段描述
+    /// </summary>
+    [SugarColumn(ColumnDescription = "字段描述", Length = 128)]
+    [MaxLength(128)]
+    public string? ColumnComment { get; set; }
+
+    /// <summary>
+    /// .NET数据类型
+    /// </summary>
+    [SugarColumn(ColumnDescription = "NET数据类型", Length = 64)]
+    [MaxLength(64)]
+    public string? NetType { get; set; }
+
+    /// <summary>
+    /// 作用类型(字典)
+    /// </summary>
+    [SugarColumn(ColumnDescription = "作用类型", Length = 64)]
+    [MaxLength(64)]
+    public string? EffectType { get; set; }
+
+    /// <summary>
+    /// 外键实体名称
+    /// </summary>
+    [SugarColumn(ColumnDescription = "外键实体名称", Length = 64)]
+    [MaxLength(64)]
+    public string? FkEntityName { get; set; }
+
+    /// <summary>
+    /// 外键表名称
+    /// </summary>
+    [SugarColumn(ColumnDescription = "外键表名称", Length = 128)]
+    [MaxLength(128)]
+    public string? FkTableName { get; set; }
+
+    /// <summary>
+    /// 外键显示字段
+    /// </summary>
+    [SugarColumn(ColumnDescription = "外键显示字段", Length = 64)]
+    [MaxLength(64)]
+    public string? FkColumnName { get; set; }
+
+    /// <summary>
+    /// 外键显示字段.NET类型
+    /// </summary>
+    [SugarColumn(ColumnDescription = "外键显示字段.NET类型", Length = 64)]
+    [MaxLength(64)]
+    public string? FkColumnNetType { get; set; }
+
+    /// <summary>
+    /// 字典编码
+    /// </summary>
+    [SugarColumn(ColumnDescription = "字典编码", Length = 64)]
+    [MaxLength(64)]
+    public string? DictTypeCode { get; set; }
+
+    /// <summary>
+    /// 列表是否缩进(字典)
+    /// </summary>
+    [SugarColumn(ColumnDescription = "列表是否缩进", Length = 8)]
+    [MaxLength(8)]
+    public string? WhetherRetract { get; set; }
+
+    /// <summary>
+    /// 是否必填(字典)
+    /// </summary>
+    [SugarColumn(ColumnDescription = "是否必填", Length = 8)]
+    [MaxLength(8)]
+    public string? WhetherRequired { get; set; }
+
+    /// <summary>
+    /// 是否是查询条件
+    /// </summary>
+    [SugarColumn(ColumnDescription = "是否是查询条件", Length = 8)]
+    [MaxLength(8)]
+    public string? QueryWhether { get; set; }
+
+    /// <summary>
+    /// 查询方式
+    /// </summary>
+    [SugarColumn(ColumnDescription = "查询方式", Length = 16)]
+    [MaxLength(16)]
+    public string? QueryType { get; set; }
+
+    /// <summary>
+    /// 列表显示
+    /// </summary>
+    [SugarColumn(ColumnDescription = "列表显示", Length = 8)]
+    [MaxLength(8)]
+    public string? WhetherTable { get; set; }
+
+    /// <summary>
+    /// 增改
+    /// </summary>
+    [SugarColumn(ColumnDescription = "增改", Length = 8)]
+    [MaxLength(8)]
+    public string? WhetherAddUpdate { get; set; }
+
+    /// <summary>
+    /// 主键
+    /// </summary>
+    [SugarColumn(ColumnDescription = "主键", Length = 8)]
+    [MaxLength(8)]
+    public string? ColumnKey { get; set; }
+
+    /// <summary>
+    /// 数据库中类型(物理类型)
+    /// </summary>
+    [SugarColumn(ColumnDescription = "数据库中类型", Length = 64)]
+    [MaxLength(64)]
+    public string? DataType { get; set; }
+
+    /// <summary>
+    /// 是否通用字段
+    /// </summary>
+    [SugarColumn(ColumnDescription = "是否通用字段", Length = 8)]
+    [MaxLength(8)]
+    public string? WhetherCommon { get; set; }
+
+    /// <summary>
+    /// 显示文本字段
+    /// </summary>
+    [SugarColumn(ColumnDescription = "显示文本字段", ColumnDataType = StaticConfig.CodeFirst_BigString)]
+    public string? DisplayColumn { get; set; }
+
+    /// <summary>
+    /// 选中值字段
+    /// </summary>
+    [SugarColumn(ColumnDescription = "选中值字段", Length = 128)]
+    [MaxLength(128)]
+    public string? ValueColumn { get; set; }
+
+    /// <summary>
+    /// 父级字段
+    /// </summary>
+    [SugarColumn(ColumnDescription = "父级字段", Length = 128)]
+    [MaxLength(128)]
+    public string? PidColumn { get; set; }
+
+    /// <summary>
+    /// 排序
+    /// </summary>
+    [SugarColumn(ColumnDescription = "排序")]
+    public int OrderNo { get; set; } = 100;
 }

+ 179 - 180
Admin.NET/Admin.NET.Core/Service/CodeGen/Dto/CodeGenConfig.cs

@@ -1,184 +1,183 @@
-// 麻省理工学院许可证
-//
-// 版权所有 (c) 2021-2023 zuohuaijun,大名科技(天津)有限公司  联系电话/微信:18020030720  QQ:515096995
-//
-// 特此免费授予获得本软件的任何人以处理本软件的权利,但须遵守以下条件:在所有副本或重要部分的软件中必须包括上述版权声明和本许可声明。
-//
-// 软件按“原样”提供,不提供任何形式的明示或暗示的保证,包括但不限于对适销性、适用性和非侵权的保证。
-// 在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是因合同、侵权或其他方式引起的,与软件或其使用或其他交易有关。
-
-namespace Admin.NET.Core.Service;
-
-/// <summary>
-/// 代码生成详细配置参数
-/// </summary>
-public class CodeGenConfig
-{
-    /// <summary>
-    /// 主键Id
-    /// </summary>
-    public long Id { get; set; }
-
-    /// <summary>
-    /// 代码生成主表ID
-    /// </summary>
-    public long CodeGenId { get; set; }
-
-    /// <summary>
-    /// 数据库字段名
-    /// </summary>
-    public string ColumnName { get; set; }
-
-    /// <summary>
-    /// 实体的Property名
-    /// </summary>
+// 麻省理工学院许可证
+//
+// 版权所有 (c) 2021-2023 zuohuaijun,大名科技(天津)有限公司  联系电话/微信:18020030720  QQ:515096995
+//
+// 特此免费授予获得本软件的任何人以处理本软件的权利,但须遵守以下条件:在所有副本或重要部分的软件中必须包括上述版权声明和本许可声明。
+//
+// 软件按“原样”提供,不提供任何形式的明示或暗示的保证,包括但不限于对适销性、适用性和非侵权的保证。
+// 在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是因合同、侵权或其他方式引起的,与软件或其使用或其他交易有关。
+
+namespace Admin.NET.Core.Service;
+
+/// <summary>
+/// 代码生成详细配置参数
+/// </summary>
+public class CodeGenConfig
+{
+    /// <summary>
+    /// 主键Id
+    /// </summary>
+    public long Id { get; set; }
+
+    /// <summary>
+    /// 代码生成主表ID
+    /// </summary>
+    public long CodeGenId { get; set; }
+
+    /// <summary>
+    /// 数据库字段名
+    /// </summary>
+    public string ColumnName { get; set; }
+
+    /// <summary>
+    /// 实体属性名
+    /// </summary>
     public string PropertyName { get; set; }
 
-    /// <summary>
-    /// 字段数据长度
-    /// </summary>
+    /// <summary>
+    /// 字段数据长度
+    /// </summary>
     public int ColumnLength { get; set; }
-
-    /// <summary>
-    /// 数据库字段名(首字母小写)
-    /// </summary>
-    public string LowerPropertyName =>
-        string.IsNullOrWhiteSpace(PropertyName) ? null : PropertyName[..1].ToLower() + PropertyName[1..];
-
-    /// <summary>
-    /// 字段描述
-    /// </summary>
-    public string ColumnComment { get; set; }
-
-    /// <summary>
-    /// .NET类型
-    /// </summary>
-    public string NetType { get; set; }
-
-    /// <summary>
-    /// 作用类型(字典)
-    /// </summary>
-    public string EffectType { get; set; }
-
-    /// <summary>
-    /// 外键实体名称
-    /// </summary>
-    public string FkEntityName { get; set; }
-
-    /// <summary>
-    /// 外键表名称
-    /// </summary>
-    public string FkTableName { get; set; }
-
-    /// <summary>
-    /// 外键实体名称(首字母小写)
-    /// </summary>
-    public string LowerFkEntityName =>
-        string.IsNullOrWhiteSpace(FkEntityName) ? null : FkEntityName[..1].ToLower() + FkEntityName[1..];
-
-    /// <summary>
-    /// 外键显示字段
-    /// </summary>
-    public string FkColumnName { get; set; }
-
-    /// <summary>
-    /// 外键显示字段(首字母小写)
-    /// </summary>
-    public string LowerFkColumnName =>
-        string.IsNullOrWhiteSpace(FkColumnName) ? null : FkColumnName[..1].ToLower() + FkColumnName[1..];
-
-    /// <summary>
-    /// 外键显示字段.NET类型
-    /// </summary>
-    public string FkColumnNetType { get; set; }
-
-    /// <summary>
-    /// 字典code
-    /// </summary>
-    public string DictTypeCode { get; set; }
-
-    /// <summary>
-    /// 列表是否缩进(字典)
-    /// </summary>
-    public string WhetherRetract { get; set; }
-
-    /// <summary>
-    /// 是否必填(字典)
-    /// </summary>
-    public string WhetherRequired { get; set; }
-
-    /// <summary>
-    /// 是否是查询条件
-    /// </summary>
-    public string QueryWhether { get; set; }
-
-    /// <summary>
-    /// 查询方式
-    /// </summary>
-    public string QueryType { get; set; }
-
-    /// <summary>
-    /// 列表显示
-    /// </summary>
-    public string WhetherTable { get; set; }
-
-    /// <summary>
-    /// 增改
-    /// </summary>
-    public string WhetherAddUpdate { get; set; }
-
-    /// <summary>
-    /// 主外键
-    /// </summary>
-    public string ColumnKey { get; set; }
-
-    /// <summary>
-    /// 数据库中类型(物理类型)
-    /// </summary>
-    public string DataType { get; set; }
-
-    /// <summary>
-    /// 是否是通用字段
-    /// </summary>
-    public string WhetherCommon { get; set; }
-
-    /// <summary>
-    /// 表的别名 Table as XXX
-    /// </summary>
-    public string TableNickName
-    {
-        get
-        {
-            string str = "";
-            if (EffectType == "fk")
-            {
-                str = LowerFkEntityName + "_FK_" + LowerFkColumnName;
-            }
-            else if (EffectType == "Upload")
-            {
-                str = "sysFile_FK_" + LowerPropertyName;
-            }
-            return str;
-        }
-    }
-
-    /// <summary>
-    /// 显示文本字段
-    /// </summary>
-    public string DisplayColumn { get; set; }
-
-    /// <summary>
-    /// 选中值字段
-    /// </summary>
-    public string ValueColumn { get; set; }
-
-    /// <summary>
-    /// 父级字段
-    /// </summary>
-    public string PidColumn { get; set; }
-
-    /// <summary>
-    /// 排序
-    /// </summary>
-    public int OrderNo { get; set; }
+
+    /// <summary>
+    /// 数据库字段名(首字母小写)
+    /// </summary>
+    public string LowerPropertyName => string.IsNullOrWhiteSpace(PropertyName) ? null : PropertyName[..1].ToLower() + PropertyName[1..];
+
+    /// <summary>
+    /// 字段描述
+    /// </summary>
+    public string ColumnComment { get; set; }
+
+    /// <summary>
+    /// .NET类型
+    /// </summary>
+    public string NetType { get; set; }
+
+    /// <summary>
+    /// 作用类型(字典)
+    /// </summary>
+    public string EffectType { get; set; }
+
+    /// <summary>
+    /// 外键实体名称
+    /// </summary>
+    public string FkEntityName { get; set; }
+
+    /// <summary>
+    /// 外键表名称
+    /// </summary>
+    public string FkTableName { get; set; }
+
+    /// <summary>
+    /// 外键实体名称(首字母小写)
+    /// </summary>
+    public string LowerFkEntityName =>
+        string.IsNullOrWhiteSpace(FkEntityName) ? null : FkEntityName[..1].ToLower() + FkEntityName[1..];
+
+    /// <summary>
+    /// 外键显示字段
+    /// </summary>
+    public string FkColumnName { get; set; }
+
+    /// <summary>
+    /// 外键显示字段(首字母小写)
+    /// </summary>
+    public string LowerFkColumnName =>
+        string.IsNullOrWhiteSpace(FkColumnName) ? null : FkColumnName[..1].ToLower() + FkColumnName[1..];
+
+    /// <summary>
+    /// 外键显示字段.NET类型
+    /// </summary>
+    public string FkColumnNetType { get; set; }
+
+    /// <summary>
+    /// 字典code
+    /// </summary>
+    public string DictTypeCode { get; set; }
+
+    /// <summary>
+    /// 列表是否缩进(字典)
+    /// </summary>
+    public string WhetherRetract { get; set; }
+
+    /// <summary>
+    /// 是否必填(字典)
+    /// </summary>
+    public string WhetherRequired { get; set; }
+
+    /// <summary>
+    /// 是否是查询条件
+    /// </summary>
+    public string QueryWhether { get; set; }
+
+    /// <summary>
+    /// 查询方式
+    /// </summary>
+    public string QueryType { get; set; }
+
+    /// <summary>
+    /// 列表显示
+    /// </summary>
+    public string WhetherTable { get; set; }
+
+    /// <summary>
+    /// 增改
+    /// </summary>
+    public string WhetherAddUpdate { get; set; }
+
+    /// <summary>
+    /// 主外键
+    /// </summary>
+    public string ColumnKey { get; set; }
+
+    /// <summary>
+    /// 数据库中类型(物理类型)
+    /// </summary>
+    public string DataType { get; set; }
+
+    /// <summary>
+    /// 是否是通用字段
+    /// </summary>
+    public string WhetherCommon { get; set; }
+
+    /// <summary>
+    /// 表的别名 Table as XXX
+    /// </summary>
+    public string TableNickName
+    {
+        get
+        {
+            string str = "";
+            if (EffectType == "fk")
+            {
+                str = LowerFkEntityName + "_FK_" + LowerFkColumnName;
+            }
+            else if (EffectType == "Upload")
+            {
+                str = "sysFile_FK_" + LowerPropertyName;
+            }
+            return str;
+        }
+    }
+
+    /// <summary>
+    /// 显示文本字段
+    /// </summary>
+    public string DisplayColumn { get; set; }
+
+    /// <summary>
+    /// 选中值字段
+    /// </summary>
+    public string ValueColumn { get; set; }
+
+    /// <summary>
+    /// 父级字段
+    /// </summary>
+    public string PidColumn { get; set; }
+
+    /// <summary>
+    /// 排序
+    /// </summary>
+    public int OrderNo { get; set; }
 }

+ 52 - 52
Admin.NET/Admin.NET.Core/Service/CodeGen/Dto/ColumnOuput.cs

@@ -1,61 +1,61 @@
-// 麻省理工学院许可证
-//
-// 版权所有 (c) 2021-2023 zuohuaijun,大名科技(天津)有限公司  联系电话/微信:18020030720  QQ:515096995
-//
-// 特此免费授予获得本软件的任何人以处理本软件的权利,但须遵守以下条件:在所有副本或重要部分的软件中必须包括上述版权声明和本许可声明。
-//
-// 软件按“原样”提供,不提供任何形式的明示或暗示的保证,包括但不限于对适销性、适用性和非侵权的保证。
-// 在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是因合同、侵权或其他方式引起的,与软件或其使用或其他交易有关。
-
-namespace Admin.NET.Core.Service;
-
-/// <summary>
-/// 数据库表列
-/// </summary>
-public class ColumnOuput
-{
-    /// <summary>
-    /// 字段名
-    /// </summary>
+// 麻省理工学院许可证
+//
+// 版权所有 (c) 2021-2023 zuohuaijun,大名科技(天津)有限公司  联系电话/微信:18020030720  QQ:515096995
+//
+// 特此免费授予获得本软件的任何人以处理本软件的权利,但须遵守以下条件:在所有副本或重要部分的软件中必须包括上述版权声明和本许可声明。
+//
+// 软件按“原样”提供,不提供任何形式的明示或暗示的保证,包括但不限于对适销性、适用性和非侵权的保证。
+// 在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是因合同、侵权或其他方式引起的,与软件或其使用或其他交易有关。
+
+namespace Admin.NET.Core.Service;
+
+/// <summary>
+/// 数据库表列
+/// </summary>
+public class ColumnOuput
+{
+    /// <summary>
+    /// 字段名
+    /// </summary>
     public string ColumnName { get; set; }
 
-    /// <summary>
-    /// 实体的Property名
-    /// </summary>
+    /// <summary>
+    /// 实体的Property名
+    /// </summary>
     public string PropertyName { get; set; }
 
-    /// <summary>
-    /// 字段数据长度
-    /// </summary>
-    public int ColumnLength { get; set; }
-
-    /// <summary>
-    /// 数据库中类型
-    /// </summary>
+    /// <summary>
+    /// 字段数据长度
+    /// </summary>
+    public int ColumnLength { get; set; }
+
+    /// <summary>
+    /// 数据库中类型
+    /// </summary>
     public string DataType { get; set; }
 
-    /// <summary>
-    /// 是否为主键
-    /// </summary>
+    /// <summary>
+    /// 是否为主键
+    /// </summary>
     public bool IsPrimarykey { get; set; }
 
-    /// <summary>
-    /// 是否允许为空
-    /// </summary>
-    public bool IsNullable { get; set; }
-
-    /// <summary>
-    /// .NET字段类型
-    /// </summary>
-    public string NetType { get; set; }
-
-    /// <summary>
-    /// 字段描述
-    /// </summary>
-    public string ColumnComment { get; set; }
-
-    /// <summary>
-    /// 主外键
-    /// </summary>
-    public string ColumnKey { get; set; }
+    /// <summary>
+    /// 是否允许为空
+    /// </summary>
+    public bool IsNullable { get; set; }
+
+    /// <summary>
+    /// .NET字段类型
+    /// </summary>
+    public string NetType { get; set; }
+
+    /// <summary>
+    /// 字段描述
+    /// </summary>
+    public string ColumnComment { get; set; }
+
+    /// <summary>
+    /// 主外键
+    /// </summary>
+    public string ColumnKey { get; set; }
 }

+ 3 - 5
Admin.NET/Admin.NET.Core/Service/CodeGen/SysCodeGenConfigService.cs

@@ -30,9 +30,8 @@ public class SysCodeGenConfigService : IDynamicApiController, ITransient
     [DisplayName("获取代码生成配置列表")]
     public async Task<List<CodeGenConfig>> GetList([FromQuery] CodeGenConfig input)
     {
-        var whetherCommon = YesNoEnum.Y.ToString();
-        var result = await _db.Queryable<SysCodeGenConfig>()
-            .Where(u => u.CodeGenId == input.CodeGenId && u.WhetherCommon != whetherCommon)
+        return await _db.Queryable<SysCodeGenConfig>()
+            .Where(u => u.CodeGenId == input.CodeGenId && u.WhetherCommon != YesNoEnum.Y.ToString())
             .Select<CodeGenConfig>()
             .Mapper(u =>
             {
@@ -40,7 +39,6 @@ public class SysCodeGenConfigService : IDynamicApiController, ITransient
             })
             .OrderBy(u => u.OrderNo)
             .ToListAsync();
-        return result;
     }
 
     /// <summary>
@@ -120,7 +118,7 @@ public class SysCodeGenConfigService : IDynamicApiController, ITransient
             codeGenConfig.NetType = tableColumn.DataType;
             codeGenConfig.WhetherRetract = YesNoEnum.N.ToString();
 
-            // 生成代码时,主键并不是必要输入项,所以下面句一定要排除主键字段
+            // 生成代码时,主键并不是必要输入项,一定要排除主键字段
             codeGenConfig.WhetherRequired = (tableColumn.IsNullable || tableColumn.IsPrimarykey) ? YesNoEnum.N.ToString() : YesNoEnum.Y.ToString();
             codeGenConfig.QueryWhether = YesOrNo;
             codeGenConfig.WhetherAddUpdate = YesOrNo;

+ 7 - 14
Admin.NET/Admin.NET.Core/Service/CodeGen/SysCodeGenService.cs

@@ -156,13 +156,6 @@ public class SysCodeGenService : IDynamicApiController, ITransient
             });
         }
         return tableOutputList;
-        //return entityInfos.Where(u => dbTableNames.Contains(config.EnableUnderLine ? UtilMethods.ToUnderLine(u.DbTableName) : u.DbTableName.ToLower())).Select(u => new TableOutput()
-        //{
-        //    ConfigId = configId,
-        //    EntityName = u.EntityName,
-        //    TableName = config.EnableUnderLine ? UtilMethods.ToUnderLine(u.DbTableName) : u.DbTableName,
-        //    TableComment = u.TableDescription
-        //}).ToList();
     }
 
     /// <summary>
@@ -210,7 +203,7 @@ public class SysCodeGenService : IDynamicApiController, ITransient
         var columnInfos = provider.DbMaintenance.GetColumnInfosByTableName(dbTableName, false);
         var result = columnInfos.Select(u => new ColumnOuput
         {
-            // 转下划线后的列名需要再转回来,2023/9/11,后面会根据字段名获取对应Property,所以这里不用转换了,以后面转换。
+            // 转下划线后的列名需要再转回来(暂时不转)
             //ColumnName = config.DbSettings.EnableUnderLine ? CodeGenUtil.CamelColumnName(u.DbColumnName, entityBasePropertyNames) : u.DbColumnName,
             ColumnName = u.DbColumnName,
             ColumnLength = u.Length,
@@ -222,19 +215,19 @@ public class SysCodeGenService : IDynamicApiController, ITransient
             ColumnComment = string.IsNullOrWhiteSpace(u.ColumnDescription) ? u.DbColumnName : u.ColumnDescription
         }).ToList();
 
-        // 获取实体的属性信息,赋值给PropertyName属性(因为CodeFirst模式以PropertyName为实际使用名称)
+        // 获取实体的属性信息,赋值给PropertyName属性(CodeFirst模式应以PropertyName为实际使用名称)
         var entityProperties = entityType.Type.GetProperties();
-        
-        for (int i= result.Count-1;i>=0;i--)
+
+        for (int i = result.Count - 1; i >= 0; i--)
         {
             var columnOutput = result[i];
             var propertyName = entityProperties.FirstOrDefault(p =>
-                p.Name == (config.DbSettings.EnableUnderLine ? CodeGenUtil.CamelColumnName(columnOutput.ColumnName, entityBasePropertyNames) : columnOutput.ColumnName) || 
+                p.Name == (config.DbSettings.EnableUnderLine ? CodeGenUtil.CamelColumnName(columnOutput.ColumnName, entityBasePropertyNames) : columnOutput.ColumnName) ||
                 p.GetCustomAttribute<SugarColumn>()?.ColumnName?.ToLower() == columnOutput.ColumnName.ToLower()).Name;
             if (propertyName != null)
                 columnOutput.PropertyName = propertyName;
             else
-                result.RemoveAt(i);// 如果实体中都没有定义这个属性,那么显示字段也没有意义,所以这里移除它
+                result.RemoveAt(i); // 移除没有定义此属性的字段
         }
         return result;
     }
@@ -520,7 +513,7 @@ public class SysCodeGenService : IDynamicApiController, ITransient
 
         var menuList = new List<SysMenu>() { menuType2, menuType2_1, menuType2_2, menuType2_3, menuType2_4 };
         // 加入fk、Upload、ApiTreeSelect 等接口的权限
-        var fkTableList = tableFieldList.Where(u => u.EffectType == "fk").ToList(); 
+        var fkTableList = tableFieldList.Where(u => u.EffectType == "fk").ToList();
         foreach (var @column in fkTableList)
         {
             var menuType = new SysMenu

+ 14 - 22
Admin.NET/Admin.NET.Core/Service/DataBase/SysDatabaseService.cs

@@ -136,33 +136,25 @@ public class SysDatabaseService : IDynamicApiController, ITransient
             throw Oops.Oh(ErrorCodeEnum.db1002);
 
         var config = App.GetOptions<DbConnectionOptions>().ConnectionConfigs.FirstOrDefault(u => u.ConfigId == input.ConfigId);
-
+        var db = _db.AsTenant().GetConnectionScope(input.ConfigId);
+        var typeBilder = db.DynamicBuilder().CreateClass(input.TableName, new SugarTable() { TableName = input.TableName, TableDescription = input.Description });
         input.DbColumnInfoList.ForEach(m =>
         {
-            columns.Add(new DbColumnInfo
+            var dbColumnName = config.DbSettings.EnableUnderLine ? UtilMethods.ToUnderLine(m.DbColumnName.Trim()) : m.DbColumnName.Trim();
+            var isPrimarykey = columns.Any(m => m.IsPrimarykey);
+            // 虚拟类都默认String,具体以列数据类型为准
+            typeBilder.CreateProperty(dbColumnName, typeof(string), new SugarColumn()
             {
-                DbColumnName = config.DbSettings.EnableUnderLine ? UtilMethods.ToUnderLine(m.DbColumnName.Trim()) : m.DbColumnName.Trim(),
-                DataType = m.DataType,
+                IsPrimaryKey = isPrimarykey,
+                IsIdentity = m.IsIdentity == 1,
+                ColumnDataType = m.DataType,
                 Length = m.Length,
-                ColumnDescription = m.ColumnDescription,
                 IsNullable = m.IsNullable == 1,
-                IsIdentity = m.IsIdentity == 1,
-                IsPrimarykey = m.IsPrimarykey == 1,
-                DecimalDigits = m.DecimalDigits
+                DecimalDigits = m.DecimalDigits,
+                ColumnDescription = m.ColumnDescription,
             });
         });
-        var db = _db.AsTenant().GetConnectionScope(input.ConfigId);
-        db.DbMaintenance.CreateTable(input.TableName, columns, false);
-
-        if (columns.Any(m => m.IsPrimarykey))
-            db.DbMaintenance.AddPrimaryKey(input.TableName, columns.FirstOrDefault(m => m.IsPrimarykey).DbColumnName);
-
-        db.DbMaintenance.AddTableRemark(input.TableName, input.Description);
-        input.DbColumnInfoList.ForEach(m =>
-        {
-            m.DbColumnName = config.DbSettings.EnableUnderLine ? UtilMethods.ToUnderLine(m.DbColumnName) : m.DbColumnName;
-            db.DbMaintenance.AddColumnRemark(m.DbColumnName, input.TableName, string.IsNullOrWhiteSpace(m.ColumnDescription) ? m.DbColumnName : m.ColumnDescription);
-        });
+        db.CodeFirst.InitTables(typeBilder.BuilderType());
     }
 
     /// <summary>
@@ -210,8 +202,8 @@ public class SysDatabaseService : IDynamicApiController, ITransient
         var config = App.GetOptions<DbConnectionOptions>().ConnectionConfigs.FirstOrDefault(u => u.ConfigId == input.ConfigId);
         input.Position = string.IsNullOrWhiteSpace(input.Position) ? "Admin.NET.Application" : input.Position;
         input.EntityName = string.IsNullOrWhiteSpace(input.EntityName) ? (config.DbSettings.EnableUnderLine ? CodeGenUtil.CamelColumnName(input.TableName, null) : input.TableName) : input.EntityName;
-        string[] dbColumnNames = new string[0];
-        // Entity.cs.vm中是允许创建没有基类的实体的,所以这里也要做出相同的判断
+        string[] dbColumnNames = Array.Empty<string>();
+        // 允许创建没有基类的实体
         if (!string.IsNullOrWhiteSpace(input.BaseClassName))
         {
             _codeGenOptions.EntityBaseColumn.TryGetValue(input.BaseClassName, out dbColumnNames);