Эх сурвалжийг харах

数据库定位器优化调整

zuohuaijun 3 жил өмнө
parent
commit
d2b5fb8a95

+ 5 - 10
Admin.NET/Admin.NET.Core/Admin.NET.Core.xml

@@ -228,11 +228,6 @@
             默认表主键
             </summary>
         </member>
-        <member name="F:Admin.NET.Core.SqlSugarConst.ConnectionConfigs">
-            <summary>
-            SqlSugar数据库链接集合(多库代码生成用)
-            </summary>
-        </member>
         <member name="T:Admin.NET.Core.EntityBaseId">
             <summary>
             框架实体基类Id
@@ -313,7 +308,7 @@
             生成方式
             </summary>
         </member>
-        <member name="P:Admin.NET.Core.SysCodeGen.DbConfigId">
+        <member name="P:Admin.NET.Core.SysCodeGen.ConfigId">
             <summary>
             库定位器名
             </summary>
@@ -3551,7 +3546,7 @@
             是否移除表前缀
             </summary>
         </member>
-        <member name="P:Admin.NET.Core.Service.CodeGenInput.DbConfigId">
+        <member name="P:Admin.NET.Core.Service.CodeGenInput.ConfigId">
             <summary>
             库定位器名
             </summary>
@@ -3706,7 +3701,7 @@
             菜单父级
             </summary>
         </member>
-        <member name="P:Admin.NET.Core.Service.CustomViewEngine.DbConfigId">
+        <member name="P:Admin.NET.Core.Service.CustomViewEngine.ConfigId">
             <summary>
             库定位器
             </summary>
@@ -3716,7 +3711,7 @@
             多库代码生成库列表输出
             </summary>
         </member>
-        <member name="P:Admin.NET.Core.Service.DatabaseOutput.DbConfigId">
+        <member name="P:Admin.NET.Core.Service.DatabaseOutput.ConfigId">
             <summary>
             库定位器名
             </summary>
@@ -3766,7 +3761,7 @@
             数据库表列表参数
             </summary>
         </member>
-        <member name="P:Admin.NET.Core.Service.TableOutput.DbConfigId">
+        <member name="P:Admin.NET.Core.Service.TableOutput.ConfigId">
             <summary>
             库定位器名
             </summary>

+ 0 - 5
Admin.NET/Admin.NET.Core/Const/SqlSugarConst.cs

@@ -14,9 +14,4 @@ public class SqlSugarConst
     /// 默认表主键
     /// </summary>
     public const string PrimaryKey = "Id";
-
-    /// <summary>
-    /// SqlSugar数据库链接集合(多库代码生成用)
-    /// </summary>
-    public static List<ConnectionConfig> ConnectionConfigs = new();
 }

+ 1 - 1
Admin.NET/Admin.NET.Core/Entity/SysCodeGen.cs

@@ -32,7 +32,7 @@ public class SysCodeGen : EntityBase
     /// </summary>
     [MaxLength(50)]
     [SugarColumn(ColumnDescription = "库定位器名")]
-    public string DbConfigId { get; set; }
+    public string ConfigId { get; set; }
 
     /// <summary>
     /// 数据库名(保留字段)

+ 14 - 24
Admin.NET/Admin.NET.Core/Service/CodeGen/CodeGenService.cs

@@ -111,31 +111,21 @@ public class CodeGenService : IDynamicApiController, ITransient
     /// </summary>
     /// <returns></returns>
     [HttpGet("codeGenerate/DatabaseList")]
-    public async Task<List<DatabaseOutput>> GetDatabaseList()
+    public async Task<List<ConnectionConfig>> GetDatabaseList()
     {
-        var result = new List<DatabaseOutput>();
-        foreach (var item in SqlSugarConst.ConnectionConfigs)
-        {
-            result.Add(new DatabaseOutput()
-            {
-                DbConfigId = item.ConfigId,
-                DbType = item.DbType.ToString(),
-                ConnectionString = item.ConnectionString,
-            });
-        }
-        return await Task.FromResult(result);
+        return await Task.FromResult(App.GetOptions<ConnectionStringsOptions>().ConnectionConfigs);
     }
 
     /// <summary>
     /// 获取数据库表(实体)集合
     /// </summary>
     /// <returns></returns>
-    [HttpGet("/codeGenerate/InformationList/{dbConfigId}")]
-    public async Task<List<TableOutput>> GetTableList(string dbConfigId = SqlSugarConst.ConfigId)
+    [HttpGet("/codeGenerate/InformationList/{configId}")]
+    public async Task<List<TableOutput>> GetTableList(string configId = SqlSugarConst.ConfigId)
     {
         //切库,多库代码生成用
-        if (dbConfigId != SqlSugarConst.ConfigId)
-            _sysCodeGenRep.Context.AsTenant().ChangeDatabase(dbConfigId);
+        if (configId != SqlSugarConst.ConfigId)
+            _sysCodeGenRep.Context.AsTenant().ChangeDatabase(configId);
 
         List<DbTableInfo> dbTableInfos = _sysCodeGenRep.Context.DbMaintenance.GetTableInfoList(false);//这里不能走缓存,否则切库不起作用
         List<string> dbTableNames = dbTableInfos.Select(x => x.Name).ToList();
@@ -147,7 +137,7 @@ public class CodeGenService : IDynamicApiController, ITransient
         {
             result.Add(new TableOutput()
             {
-                DbConfigId = dbConfigId,
+                ConfigId = configId,
                 EntityName = item.EntityName,
                 TableName = item.DbTableName,
                 TableComment = item.TableDescription
@@ -160,12 +150,12 @@ public class CodeGenService : IDynamicApiController, ITransient
     /// 根据表名获取列
     /// </summary>
     /// <returns></returns>
-    [HttpGet("/codeGenerate/ColumnList/{dbConfigId}/{tableName}")]
-    public List<TableColumnOuput> GetColumnListByTableName(string tableName, string dbConfigId = SqlSugarConst.ConfigId)
+    [HttpGet("/codeGenerate/ColumnList/{configId}/{tableName}")]
+    public List<TableColumnOuput> GetColumnListByTableName(string tableName, string configId = SqlSugarConst.ConfigId)
     {
         //切库,多库代码生成用
-        if (dbConfigId != SqlSugarConst.ConfigId)
-            _sysCodeGenRep.Context.AsTenant().ChangeDatabase(dbConfigId);
+        if (configId != SqlSugarConst.ConfigId)
+            _sysCodeGenRep.Context.AsTenant().ChangeDatabase(configId);
 
         // 获取实体类型属性
         var entityType = _sysCodeGenRep.Context.DbMaintenance.GetTableInfoList().FirstOrDefault(u => u.Name == tableName);
@@ -190,8 +180,8 @@ public class CodeGenService : IDynamicApiController, ITransient
     public List<TableColumnOuput> GetColumnList([FromQuery] AddCodeGenInput input)
     {
         //切库,多库代码生成用
-        if (!string.IsNullOrEmpty(input.DbConfigId) && input.DbConfigId != SqlSugarConst.ConfigId)
-            _sysCodeGenRep.Context.AsTenant().ChangeDatabase(input.DbConfigId);
+        if (!string.IsNullOrEmpty(input.ConfigId) && input.ConfigId != SqlSugarConst.ConfigId)
+            _sysCodeGenRep.Context.AsTenant().ChangeDatabase(input.ConfigId);
 
         var entityType = _commonService.GetEntityInfos().Result.FirstOrDefault(m => m.EntityName == input.TableName);
         if (entityType == null)
@@ -227,7 +217,7 @@ public class CodeGenService : IDynamicApiController, ITransient
 
             var data = new CustomViewEngine(_sysCodeGenRep)
             {
-                DbConfigId = input.DbConfigId,
+                ConfigId = input.ConfigId,
                 AuthorName = input.AuthorName,
                 BusName = input.BusName,
                 NameSpace = input.NameSpace,

+ 1 - 1
Admin.NET/Admin.NET.Core/Service/CodeGen/Dto/CodeGenInput.cs

@@ -23,7 +23,7 @@ public class CodeGenInput : BasePageInput
     /// <summary>
     /// 库定位器名
     /// </summary>
-    public virtual string DbConfigId { get; set; }
+    public virtual string ConfigId { get; set; }
 
     /// <summary>
     /// 数据库名(保留字段)

+ 3 - 3
Admin.NET/Admin.NET.Core/Service/CodeGen/Dto/CustomViewEngine.cs

@@ -16,7 +16,7 @@ public class CustomViewEngine : ViewEngineModel
     /// <summary>
     /// 库定位器
     /// </summary>
-    public string DbConfigId { get; set; } = SqlSugarConst.ConfigId;
+    public string ConfigId { get; set; } = SqlSugarConst.ConfigId;
 
     public string AuthorName { get; set; }
 
@@ -55,8 +55,8 @@ public class CustomViewEngine : ViewEngineModel
     public List<TableColumnOuput> GetColumnListByTableName(string tableName)
     {
         //多库代码生成切换库
-        if (DbConfigId != SqlSugarConst.ConfigId)
-            _sysCodeGenRep.Context.AsTenant().ChangeDatabase(DbConfigId);
+        if (ConfigId != SqlSugarConst.ConfigId)
+            _sysCodeGenRep.Context.AsTenant().ChangeDatabase(ConfigId);
 
         // 获取实体类型属性
         var entityType = _sysCodeGenRep.Context.DbMaintenance.GetTableInfoList().FirstOrDefault(u => u.Name == tableName);

+ 1 - 1
Admin.NET/Admin.NET.Core/Service/CodeGen/Dto/DatabaseOutput.cs

@@ -8,7 +8,7 @@ public class DatabaseOutput
     /// <summary>
     /// 库定位器名
     /// </summary>
-    public dynamic DbConfigId { get; set; }
+    public dynamic ConfigId { get; set; }
 
     /// <summary>
     /// 数据库类型

+ 1 - 1
Admin.NET/Admin.NET.Core/Service/CodeGen/Dto/TableOutput.cs

@@ -8,7 +8,7 @@ public class TableOutput
     /// <summary>
     /// 库定位器名
     /// </summary>
-    public string DbConfigId { get; set; }
+    public string ConfigId { get; set; }
 
     /// <summary>
     /// 表名(字母形式的)

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

@@ -15,9 +15,6 @@ public static class SqlSugarSetup
         services.AddSingleton<ISqlSugarClient>(provider =>
         {
             var dbOptions = App.GetOptions<ConnectionStringsOptions>();
-            //数据库配置信息赋值给sqlsugarconst常量
-            SqlSugarConst.ConnectionConfigs = dbOptions.ConnectionConfigs;
-
             var configureExternalServices = new ConfigureExternalServices
             {
                 EntityService = (type, column) => // 修改列可空-1、带?问号 2、String类型若没有Required

+ 5 - 0
Admin.NET/Admin.NET.Web.Entry/Admin.NET.Web.Entry.csproj

@@ -17,6 +17,11 @@
 	  <None Remove="publish\**" />
 	</ItemGroup>
 
+	<ItemGroup>
+	  <None Remove="Admin.NET.db" />
+	  <None Remove="Test.db" />
+	</ItemGroup>
+
 	<ItemGroup>
 		<ProjectReference Include="..\Admin.NET.Web.Core\Admin.NET.Web.Core.csproj" />
 	</ItemGroup>