diff --git a/Infrastructure/OptionsSetting.cs b/Infrastructure/OptionsSetting.cs
index 5654154..160ced5 100644
--- a/Infrastructure/OptionsSetting.cs
+++ b/Infrastructure/OptionsSetting.cs
@@ -80,10 +80,7 @@ namespace Infrastructure
public class Gen
{
- public string Conn { get; set; }
- public int DbType { get; set; }
public string Database { get; set; }
-
}
public class DbConfigs
@@ -92,5 +89,10 @@ namespace Infrastructure
public int DbType { get; set; }
public string ConfigId { get; set; }
public bool IsAutoCloseConnection { get; set; }
+ ///
+ /// 是否代码生成使用库
+ ///
+ public bool IsGenerateDb { get; set; }
+ public string DbName { get; set; }
}
}
diff --git a/ZR.Admin.WebApi/Controllers/System/CodeGeneratorController.cs b/ZR.Admin.WebApi/Controllers/System/CodeGeneratorController.cs
index 0c65c48..5aabe55 100644
--- a/ZR.Admin.WebApi/Controllers/System/CodeGeneratorController.cs
+++ b/ZR.Admin.WebApi/Controllers/System/CodeGeneratorController.cs
@@ -2,6 +2,7 @@
using Infrastructure.Attribute;
using Infrastructure.Enums;
using Infrastructure.Extensions;
+using IP2Region.Ex.Models;
using Mapster;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
@@ -230,8 +231,9 @@ namespace ZR.Admin.WebApi.Controllers
throw new CustomException(ResultCode.CUSTOM_ERROR, "请求参数为空");
}
var genTableInfo = GenTableService.GetGenTableInfo(dto.TableId);
+ var dbConfig = AppSettings.Get>("dbConfigs").FirstOrDefault(f => f.IsGenerateDb);
- dto.DbType = AppSettings.GetAppConfig("gen:dbType", 0);
+ dto.DbType = dbConfig.DbType;
dto.GenTable = genTableInfo;
dto.IsPreview = true;
//生成代码
@@ -255,8 +257,9 @@ namespace ZR.Admin.WebApi.Controllers
throw new CustomException(ResultCode.CUSTOM_ERROR, "请求参数为空");
}
var genTableInfo = GenTableService.GetGenTableInfo(dto.TableId);
+ var dbConfig = AppSettings.Get>("dbConfigs").FirstOrDefault(f => f.IsGenerateDb);
- dto.DbType = AppSettings.GetAppConfig("gen:dbType", 0);
+ dto.DbType = dbConfig.DbType;
dto.GenTable = genTableInfo;
//自定义路径
if (genTableInfo.GenType == "1")
diff --git a/ZR.Admin.WebApi/Extensions/DbExtension.cs b/ZR.Admin.WebApi/Extensions/DbExtension.cs
index 455a650..e9d7641 100644
--- a/ZR.Admin.WebApi/Extensions/DbExtension.cs
+++ b/ZR.Admin.WebApi/Extensions/DbExtension.cs
@@ -35,7 +35,7 @@ namespace ZR.Admin.WebApi.Extensions
List dbConfigs = Configuration.GetSection("DbConfigs").Get>();
var iocList = new List();
- foreach (var item in dbConfigs)
+ foreach (var item in dbConfigs.FindAll(f => !f.IsGenerateDb))
{
iocList.Add(new IocConfig()
{
diff --git a/ZR.Admin.WebApi/appsettings.json b/ZR.Admin.WebApi/appsettings.json
index c9aa223..3f35065 100644
--- a/ZR.Admin.WebApi/appsettings.json
+++ b/ZR.Admin.WebApi/appsettings.json
@@ -12,6 +12,14 @@
"DbType": 1, //数据库类型 MySql = 0, SqlServer = 1, Oracle = 3,PgSql = 4
"ConfigId": "0", //多租户唯一标识
"IsAutoCloseConnection": true
+ },
+ {
+ "Conn": "Data Source=LAPTOP-STKF2M8H\\SQLEXPRESS;User ID=admin;Password=admin123;Initial Catalog={dbName};",
+ "DbType": 1,
+ "ConfigId": "0",
+ "IsAutoCloseConnection": true,
+ "DbName": "ZrAdmin",//代码生成默认连接数据库
+ "IsGenerateDb": true //是否代码生成使用库,不要改动
}
//...下面添加更多的数据库源
],
@@ -50,13 +58,10 @@
},
//代码生成配置
"gen": {
- "conn": "Data Source=LAPTOP-STKF2M8H\\SQLEXPRESS;User ID=admin;Password=admin123;Initial Catalog=ZrAdmin;",
- "dbType": 1, //MySql = 0, SqlServer = 1
"autoPre": true, //自动去除表前缀
"author": "admin",
"tablePrefix": "sys_", //"表前缀(生成类名不会包含表前缀,多个用逗号分隔)",
- "vuePath": "", //前端代码存储路径eg:D:\Work\ZRAdmin-Vue3
- "oracle_db": ""
+ "vuePath": "" //前端代码存储路径eg:D:\Work\ZRAdmin-Vue3
},
//邮箱配置信息
"MailOptions": {
diff --git a/ZR.CodeGenerator/DbProvider.cs b/ZR.CodeGenerator/DbProvider.cs
index 0696d62..afbff3d 100644
--- a/ZR.CodeGenerator/DbProvider.cs
+++ b/ZR.CodeGenerator/DbProvider.cs
@@ -1,5 +1,4 @@
using Infrastructure;
-using Infrastructure.Extensions;
using SqlSugar;
using System;
using System.Collections.Generic;
@@ -21,27 +20,22 @@ namespace ZR.CodeGenerator
///
public SqlSugarClient GetSugarDbContext(string dbName = "")
{
- Gen options = new();
- AppSettings.Bind("gen", options);
- string connStr = options.Conn;
+ List dbConfigs = AppSettings.Get>("dbConfigs");
+
+ DbConfigs configs = dbConfigs.Find(f => f.IsGenerateDb == true);
+ string connStr = configs.Conn;
+
if (!string.IsNullOrEmpty(dbName))
{
- string replaceStr = GetValue(options.Conn, "Database=", ";");
- string replaceStr2 = GetValue(options.Conn, "Initial Catalog=", ";");
- if (replaceStr.IsNotEmpty())
- {
- connStr = options.Conn.Replace(replaceStr, dbName, StringComparison.OrdinalIgnoreCase);
- }
- if (replaceStr2.IsNotEmpty())
- {
- connStr = options.Conn.Replace(replaceStr2, dbName, StringComparison.OrdinalIgnoreCase);
- }
+ configs.DbName = dbName;
}
+ connStr = connStr.Replace("{dbName}", configs.DbName, StringComparison.OrdinalIgnoreCase);
+
var db = new SqlSugarClient(new List()
{
new ConnectionConfig(){
ConnectionString = connStr,
- DbType = (DbType)options.DbType,
+ DbType = (DbType)configs.DbType,
IsAutoCloseConnection = true,//开启自动释放模式和EF原理一样
InitKeyType = InitKeyType.Attribute,//从特性读取主键和自增列信息
},
diff --git a/ZR.CodeGenerator/GenConstants.cs b/ZR.CodeGenerator/GenConstants.cs
index e7bfc94..057cc2f 100644
--- a/ZR.CodeGenerator/GenConstants.cs
+++ b/ZR.CodeGenerator/GenConstants.cs
@@ -7,12 +7,10 @@ namespace ZR.CodeGenerator
///
public class GenConstants
{
- public static string Gen_conn = "gen:conn";
public static string Gen_conn_dbType = "gen:dbType";
public static string Gen_author = "gen:author";
public static string Gen_autoPre = "gen:autoPre";
public static string Gen_tablePrefix = "gen:tablePrefix";
- public static string Gen_oracle_db = "gen:oracle_db";
///
/// InputDto输入实体是不包含字段
diff --git a/ZR.CodeGenerator/Service/CodeGeneraterService.cs b/ZR.CodeGenerator/Service/CodeGeneraterService.cs
index fd82340..95f44c6 100644
--- a/ZR.CodeGenerator/Service/CodeGeneraterService.cs
+++ b/ZR.CodeGenerator/Service/CodeGeneraterService.cs
@@ -16,15 +16,15 @@ namespace ZR.CodeGenerator.Service
{
var db = GetSugarDbContext();
//Oracle库特殊处理
- var dbType = AppSettings.GetAppConfig(GenConstants.Gen_conn_dbType, 0);
- if (dbType == 3)
+ List dbConfigs = AppSettings.Get>("dbConfigs");
+ DbConfigs configs = dbConfigs.Find(f => f.IsGenerateDb == true);
+ if (configs.DbType == 3)
{
- var defaultDb = AppSettings.GetAppConfig(GenConstants.Gen_oracle_db, string.Empty);
- return new List() { defaultDb };
+ return new List() { configs?.DbName };
}
var templist = db.DbMaintenance.GetDataBaseList(db);
- return templist;
+ return templist.FindAll(f => !f.Contains("schema"));
}
///