Преглед изворни кода

😁调整configId类型全部转string处理

zuohuaijun пре 2 година
родитељ
комит
deb0a1408c

+ 1 - 1
Admin.NET/Admin.NET.Application/Configuration/Database.json

@@ -3,7 +3,7 @@
 
   // 详细数据库配置见SqlSugar官网(第一个为默认库)
   "DbConnection": {
-    "EnableConsoleSql": false, // 启用控制台打印SQL
+    "EnableConsoleSql": true, // 启用控制台打印SQL
     "ConnectionConfigs": [
       {
         //"ConfigId": "1300000000001", // 默认库标识-禁止修改

+ 1 - 6
Admin.NET/Admin.NET.Core/Option/DbConnectionOptions.cs

@@ -28,7 +28,7 @@ public sealed class DbConnectionOptions : IConfigurableOptions<DbConnectionOptio
     {
         foreach (var dbConfig in options.ConnectionConfigs)
         {
-            if (string.IsNullOrWhiteSpace(dbConfig.ConfigId))
+            if (dbConfig.ConfigId == null || string.IsNullOrWhiteSpace(dbConfig.ConfigId.ToString()))
                 dbConfig.ConfigId = SqlSugarConst.MainConfigId;
         }
     }
@@ -39,11 +39,6 @@ public sealed class DbConnectionOptions : IConfigurableOptions<DbConnectionOptio
 /// </summary>
 public sealed class DbConnectionConfig : ConnectionConfig
 {
-    /// <summary>
-    /// 数据库标识
-    /// </summary>
-    public new string ConfigId { get; set; }
-
     /// <summary>
     /// 数据库设置
     /// </summary>

+ 1 - 1
Admin.NET/Admin.NET.Core/Service/CodeGen/CustomViewEngine.cs

@@ -57,7 +57,7 @@ public class CustomViewEngine : ViewEngineModel
 
     public string GetColumnNetType(object tbName, object colName)
     {
-        var config = App.GetOptions<DbConnectionOptions>().ConnectionConfigs.FirstOrDefault(u => u.ConfigId == ConfigId);
+        var config = App.GetOptions<DbConnectionOptions>().ConnectionConfigs.FirstOrDefault(u => u.ConfigId.ToString() == ConfigId);
         ColumnList = GetColumnListByTableName(tbName.ToString());
         var col = ColumnList.Where(c => (config.DbSettings.EnableUnderLine
             ? CodeGenUtil.CamelColumnName(c.ColumnName, Array.Empty<string>())

+ 2 - 2
Admin.NET/Admin.NET.Core/Service/CodeGen/SysCodeGenService.cs

@@ -168,7 +168,7 @@ public class SysCodeGenService : IDynamicApiController, ITransient
         // 切库---多库代码生成用
         var provider = _db.AsTenant().GetConnectionScope(configId);
 
-        var config = App.GetOptions<DbConnectionOptions>().ConnectionConfigs.FirstOrDefault(u => u.ConfigId == configId);
+        var config = App.GetOptions<DbConnectionOptions>().ConnectionConfigs.FirstOrDefault(u => u.ConfigId.ToString() == configId);
         // 获取实体类型属性
         var entityType = provider.DbMaintenance.GetTableInfoList(false).FirstOrDefault(u => u.Name == tableName);
         if (entityType == null) return null;
@@ -197,7 +197,7 @@ public class SysCodeGenService : IDynamicApiController, ITransient
         // 切库---多库代码生成用
         var provider = _db.AsTenant().GetConnectionScope(!string.IsNullOrEmpty(input.ConfigId) ? input.ConfigId : SqlSugarConst.MainConfigId);
 
-        var config = App.GetOptions<DbConnectionOptions>().ConnectionConfigs.FirstOrDefault(u => u.ConfigId == input.ConfigId);
+        var config = App.GetOptions<DbConnectionOptions>().ConnectionConfigs.FirstOrDefault(u => u.ConfigId.ToString() == input.ConfigId);
         var dbTableName = config.DbSettings.EnableUnderLine ? UtilMethods.ToUnderLine(entityType.DbTableName) : entityType.DbTableName;
         var entityBasePropertyNames = _codeGenOptions.EntityBaseColumn[nameof(EntityTenant)];
         var columnInfos = provider.DbMaintenance.GetColumnInfosByTableName(dbTableName, false);

+ 4 - 4
Admin.NET/Admin.NET.Core/Service/DataBase/SysDatabaseService.cs

@@ -37,7 +37,7 @@ public class SysDatabaseService : IDynamicApiController, ITransient
     [DisplayName("获取库列表")]
     public List<string> GetList()
     {
-        return App.GetOptions<DbConnectionOptions>().ConnectionConfigs.Select(u => u.ConfigId).ToList();
+        return App.GetOptions<DbConnectionOptions>().ConnectionConfigs.Select(u => u.ConfigId.ToString()).ToList();
     }
 
     /// <summary>
@@ -148,7 +148,7 @@ public class SysDatabaseService : IDynamicApiController, ITransient
         if (input.DbColumnInfoList.GroupBy(u => u.DbColumnName).Any(u => u.Count() > 1))
             throw Oops.Oh(ErrorCodeEnum.db1002);
 
-        var config = App.GetOptions<DbConnectionOptions>().ConnectionConfigs.FirstOrDefault(u => u.ConfigId == input.ConfigId);
+        var config = App.GetOptions<DbConnectionOptions>().ConnectionConfigs.FirstOrDefault(u => u.ConfigId.ToString() == input.ConfigId);
         var db = _db.AsTenant().GetConnectionScope(input.ConfigId);
         var typeBuilder = db.DynamicBuilder().CreateClass(input.TableName, new SugarTable() { TableName = input.TableName, TableDescription = input.Description });
         input.DbColumnInfoList.ForEach(u =>
@@ -212,7 +212,7 @@ public class SysDatabaseService : IDynamicApiController, ITransient
     [DisplayName("创建实体")]
     public void CreateEntity(CreateEntityInput input)
     {
-        var config = App.GetOptions<DbConnectionOptions>().ConnectionConfigs.FirstOrDefault(u => u.ConfigId == input.ConfigId);
+        var config = App.GetOptions<DbConnectionOptions>().ConnectionConfigs.FirstOrDefault(u => u.ConfigId.ToString() == 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 = Array.Empty<string>();
@@ -258,7 +258,7 @@ public class SysDatabaseService : IDynamicApiController, ITransient
     [DisplayName("创建种子数据")]
     public async void CreateSeedData(CreateSeedDataInput input)
     {
-        var config = App.GetOptions<DbConnectionOptions>().ConnectionConfigs.FirstOrDefault(u => u.ConfigId == input.ConfigId);
+        var config = App.GetOptions<DbConnectionOptions>().ConnectionConfigs.FirstOrDefault(u => u.ConfigId.ToString() == input.ConfigId);
         input.Position = string.IsNullOrWhiteSpace(input.Position) ? "Admin.NET.Core" : input.Position;
 
         var templatePath = GetSeedDataTemplatePath();

+ 4 - 4
Admin.NET/Admin.NET.Core/Service/Tenant/SysTenantService.cs

@@ -407,8 +407,8 @@ public class SysTenantService : IDynamicApiController, ITransient
         var iTenant = _sysTenantRep.AsTenant();
 
         // 若已存在租户库连接,则直接返回
-        if (iTenant.IsAnyConnection(tenantId))
-            return iTenant.GetConnectionScope(tenantId);
+        if (iTenant.IsAnyConnection(tenantId.ToString()))
+            return iTenant.GetConnectionScope(tenantId.ToString());
 
         // 从缓存里面获取租户信息
         var tenant = _sysCacheService.Get<List<SysTenant>>(CacheConst.KeyTenant).FirstOrDefault(u => u.Id == tenantId);
@@ -416,7 +416,7 @@ public class SysTenantService : IDynamicApiController, ITransient
 
         // 获取默认库连接配置
         var dbOptions = App.GetOptions<DbConnectionOptions>();
-        var mainConnConfig = dbOptions.ConnectionConfigs.First(u => u.ConfigId == SqlSugarConst.MainConfigId);
+        var mainConnConfig = dbOptions.ConnectionConfigs.First(u => u.ConfigId.ToString() == SqlSugarConst.MainConfigId);
 
         // 设置租户库连接配置
         var tenantConnConfig = new DbConnectionConfig
@@ -432,7 +432,7 @@ public class SysTenantService : IDynamicApiController, ITransient
         };
         iTenant.AddConnection(tenantConnConfig);
 
-        var sqlSugarScopeProvider = iTenant.GetConnectionScope(tenantId);
+        var sqlSugarScopeProvider = iTenant.GetConnectionScope(tenantId.ToString());
         SqlSugarSetup.SetDbConfig(tenantConnConfig);
         SqlSugarSetup.SetDbAop(sqlSugarScopeProvider, dbOptions.EnableConsoleSql);
 

+ 9 - 8
Admin.NET/Admin.NET.Core/SqlSugar/SqlSugarSetup.cs

@@ -295,12 +295,12 @@ public static class SqlSugarSetup
             var entityTypes = App.EffectiveTypes.Where(u => !u.IsInterface && !u.IsAbstract && u.IsClass && u.IsDefined(typeof(SugarTable), false))
                 .WhereIF(config.TableSettings.EnableIncreTable, u => u.IsDefined(typeof(IncreTableAttribute), false)).ToList();
 
-            if (config.ConfigId == SqlSugarConst.MainConfigId) // 默认库(有系统表特性、没有日志表和租户表特性)
+            if (config.ConfigId.ToString() == SqlSugarConst.MainConfigId) // 默认库(有系统表特性、没有日志表和租户表特性)
                 entityTypes = entityTypes.Where(u => u.GetCustomAttributes<SysTableAttribute>().Any() || (!u.GetCustomAttributes<LogTableAttribute>().Any() && !u.GetCustomAttributes<TenantAttribute>().Any())).ToList();
-            else if (config.ConfigId == SqlSugarConst.LogConfigId) // 日志库
+            else if (config.ConfigId.ToString() == SqlSugarConst.LogConfigId) // 日志库
                 entityTypes = entityTypes.Where(u => u.GetCustomAttributes<LogTableAttribute>().Any()).ToList();
             else
-                entityTypes = entityTypes.Where(u => u.GetCustomAttribute<TenantAttribute>()?.configId.ToString() == config.ConfigId).ToList(); // 自定义的库
+                entityTypes = entityTypes.Where(u => u.GetCustomAttribute<TenantAttribute>()?.configId.ToString() == config.ConfigId.ToString()).ToList(); // 自定义的库
 
             foreach (var entityType in entityTypes)
             {
@@ -320,12 +320,12 @@ public static class SqlSugarSetup
             foreach (var seedType in seedDataTypes)
             {
                 var entityType = seedType.GetInterfaces().First().GetGenericArguments().First();
-                if (config.ConfigId == SqlSugarConst.MainConfigId) // 默认库(有系统表特性、没有日志表和租户表特性)
+                if (config.ConfigId.ToString() == SqlSugarConst.MainConfigId) // 默认库(有系统表特性、没有日志表和租户表特性)
                 {
                     if (entityType.GetCustomAttribute<SysTableAttribute>() == null && (entityType.GetCustomAttribute<LogTableAttribute>() != null || entityType.GetCustomAttribute<TenantAttribute>() != null))
                         continue;
                 }
-                else if (config.ConfigId == SqlSugarConst.LogConfigId) // 日志库
+                else if (config.ConfigId.ToString() == SqlSugarConst.LogConfigId) // 日志库
                 {
                     if (entityType.GetCustomAttribute<LogTableAttribute>() == null)
                         continue;
@@ -333,7 +333,7 @@ public static class SqlSugarSetup
                 else
                 {
                     var att = entityType.GetCustomAttribute<TenantAttribute>(); // 自定义的库
-                    if (att == null || att.configId.ToString() != config.ConfigId) continue;
+                    if (att == null || att.configId.ToString() != config.ConfigId.ToString()) continue;
                 }
 
                 var instance = Activator.CreateInstance(seedType);
@@ -368,8 +368,9 @@ public static class SqlSugarSetup
     {
         SetDbConfig(config);
 
-        iTenant.AddConnection(config);
-        var db = iTenant.GetConnectionScope(config.ConfigId);
+        if (!iTenant.IsAnyConnection(config.ConfigId.ToString()))
+            iTenant.AddConnection(config);
+        var db = iTenant.GetConnectionScope(config.ConfigId.ToString());
         db.DbMaintenance.CreateDatabase();
 
         // 获取所有业务表-初始化租户库表结构(排除系统表、日志表、特定库表)