From 153863dd0e390a2de0b79153e37f82eb027f28fa Mon Sep 17 00:00:00 2001 From: kingling Date: Thu, 14 Jul 2022 22:57:47 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DAddDbPool=E6=89=A9=E5=B1=95?= =?UTF-8?q?=E6=9C=AA=E6=A0=B9=E6=8D=AE=E9=85=8D=E7=BD=AEKey=E8=AF=BB?= =?UTF-8?q?=E5=8F=96=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DatabaseAccessor/Internal/DbProvider.cs | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/framework/Furion/DatabaseAccessor/Internal/DbProvider.cs b/framework/Furion/DatabaseAccessor/Internal/DbProvider.cs index 5d8d34b7b8..e68ef4b3db 100644 --- a/framework/Furion/DatabaseAccessor/Internal/DbProvider.cs +++ b/framework/Furion/DatabaseAccessor/Internal/DbProvider.cs @@ -140,31 +140,33 @@ public static class DbProvider where TDbContext : DbContext { // 支持读取配置渲染 - var realConnectionString = connectionMetadata.Render(); - - if (!string.IsNullOrWhiteSpace(realConnectionString)) return realConnectionString; + var connStrOrConnKey = connectionMetadata.Render(); // 如果没有配置数据库连接字符串,那么查找特性 - var dbContextAttribute = GetAppDbContextAttribute(typeof(TDbContext)); - if (dbContextAttribute == null) return default; + if (string.IsNullOrWhiteSpace(connStrOrConnKey)) + { + var dbContextAttribute = GetAppDbContextAttribute(typeof(TDbContext)); + if (dbContextAttribute == null) return default; + + // 获取特性连接字符串(渲染配置模板) + connStrOrConnKey = dbContextAttribute.ConnectionMetadata.Render(); + } - // 获取特性连接字符串(渲染配置模板) - var connStr = dbContextAttribute.ConnectionMetadata.Render(); + if (string.IsNullOrWhiteSpace(connStrOrConnKey)) return default; - if (string.IsNullOrWhiteSpace(connStr)) return default; // 如果包含 = 符号,那么认为是连接字符串 - if (connStr.Contains('=')) return connStr; + if (connStrOrConnKey.Contains('=')) return connStrOrConnKey; else { var configuration = App.Configuration; // 如果包含 : 符号,那么认为是一个 Key 路径 - if (connStr.Contains(':')) return configuration[connStr]; + if (connStrOrConnKey.Contains(':')) return configuration[connStrOrConnKey]; else { // 首先查找 DbConnectionString 键,如果没有找到,则当成 Key 去查找 - var connStrValue = configuration.GetConnectionString(connStr); - return (!string.IsNullOrWhiteSpace(connStrValue) ? connStrValue : configuration[connStr]) ?? connStr; + var connStrValue = configuration.GetConnectionString(connStrOrConnKey); + return (!string.IsNullOrWhiteSpace(connStrValue) ? connStrValue : configuration[connStrOrConnKey]) ?? connStrOrConnKey; } } } -- Gitee