diff --git a/Falcon.SugarApi/DatabaseManager/DbContextBase.cs b/Falcon.SugarApi/DatabaseManager/DbContextBase.cs index 6a94a61..10c810c 100644 --- a/Falcon.SugarApi/DatabaseManager/DbContextBase.cs +++ b/Falcon.SugarApi/DatabaseManager/DbContextBase.cs @@ -2,6 +2,7 @@ using Microsoft.Extensions.Logging; using SqlSugar; using System; +using System.Linq; namespace Falcon.SugarApi.DatabaseManager { @@ -24,6 +25,17 @@ namespace Falcon.SugarApi.DatabaseManager this.Logger = service.GetService(typeof(ILogger<>).MakeGenericType(GetType())) as ILogger; ConfigureExternalServices(this.CurrentConnectionConfig); } + /// + /// 使用服务提供程序和配置集合初始化数据库上下文 + /// + /// 服务提供程序 + /// 数据库上下文配置集合 + public DbContextBase(IServiceProvider service,params ConnectionConfig[] configs) : base(configs.ToList()) { + this.Logger = service.GetService(typeof(ILogger<>).MakeGenericType(GetType())) as ILogger; + foreach(var c in configs) { + ConfigureExternalServices(this.GetConnection(c.ConfigId).CurrentConnectionConfig); + } + } private static void ConfigureExternalServices(ConnectionConfig config) { config.ConfigureExternalServices ??= new ConfigureExternalServices();