Explorar el Código

!864 增加代码生成时切换库定位器导致出现空异常
Merge pull request !864 from 花辞树/next

zuohuaijun hace 2 años
padre
commit
d62c29669d

+ 4 - 0
Admin.NET/Admin.NET.Core/Option/DbConnectionOptions.cs

@@ -38,6 +38,10 @@ 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/SysCodeGenService.cs

@@ -137,7 +137,7 @@ public class SysCodeGenService : IDynamicApiController, ITransient
         var provider = _db.AsTenant().GetConnectionScope(configId);
         var dbTableInfos = provider.DbMaintenance.GetTableInfoList(false); // 不能走缓存,否则切库不起作用
 
-        var config = App.GetOptions<DbConnectionOptions>().ConnectionConfigs.FirstOrDefault(u => u.ConfigId == configId);
+        var config = App.GetOptions<DbConnectionOptions>().ConnectionConfigs.FirstOrDefault(u => configId.Equals(u.ConfigId));
 
         var dbTableNames = dbTableInfos.Select(u => u.Name.ToLower()).ToList();
         IEnumerable<EntityInfo> entityInfos = await GetEntityInfos();

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

@@ -35,7 +35,7 @@ public class SysDatabaseService : IDynamicApiController, ITransient
     /// </summary>
     /// <returns></returns>
     [DisplayName("获取库列表")]
-    public List<dynamic> GetList()
+    public List<string> GetList()
     {
         return App.GetOptions<DbConnectionOptions>().ConnectionConfigs.Select(u => u.ConfigId).ToList();
     }

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

@@ -421,7 +421,7 @@ public class SysTenantService : IDynamicApiController, ITransient
         // 设置租户库连接配置
         var tenantConnConfig = new DbConnectionConfig
         {
-            ConfigId = tenant.Id,
+            ConfigId = tenant.Id.ToString(),
             DbType = tenant.DbType,
             IsAutoCloseConnection = true,
             ConnectionString = tenant.Connection,