Просмотр исходного кода

fix: 😀修复表结构初始化存在已移除的必填字段时,导致增改数据报不能为null的问题

喵你个旺呀 1 год назад
Родитель
Сommit
2c8ea01593
1 измененных файлов с 10 добавлено и 0 удалено
  1. 10 0
      Admin.NET/Admin.NET.Core/SqlSugar/SqlSugarSetup.cs

+ 10 - 0
Admin.NET/Admin.NET.Core/SqlSugar/SqlSugarSetup.cs

@@ -363,6 +363,16 @@ public static class SqlSugarSetup
             var taskList = entityTypes.Select(entityType => Task.Run(() =>
             {
                 Console.WriteLine($"创建表 {entityType, -64} ({config.ConfigId} - {Interlocked.Increment(ref count):D003}/{sum:D003})");
+
+                // 将不存在实体中的字段改为可空
+                var entityInfo = dbProvider.EntityMaintenance.GetEntityInfo(entityType);
+                var dbColumnInfos = dbProvider.DbMaintenance.GetColumnInfosByTableName(entityInfo.DbTableName) ?? new();
+                foreach (var dbColumnInfo in dbColumnInfos.Where(dbColumnInfo => entityInfo.Columns.All(u => u.DbColumnName != dbColumnInfo.DbColumnName)))
+                {
+                    dbColumnInfo.IsNullable = true;
+                    dbProvider.DbMaintenance.UpdateColumn(entityInfo.DbTableName, dbColumnInfo);
+                }
+
                 if (entityType.GetCustomAttribute<SplitTableAttribute>() == null)
                     dbProvider.CodeFirst.InitTables(entityType);
                 else