diff --git a/src/DotNetCore.CAP.MySql/CAP.MySqlCapOptionsExtension.cs b/src/DotNetCore.CAP.MySql/CAP.MySqlCapOptionsExtension.cs index b9c1b0db8..ffe2cab4c 100644 --- a/src/DotNetCore.CAP.MySql/CAP.MySqlCapOptionsExtension.cs +++ b/src/DotNetCore.CAP.MySql/CAP.MySqlCapOptionsExtension.cs @@ -31,9 +31,13 @@ public void AddServices(IServiceCollection services) { services.AddSingleton(x => { - var dbContext = (DbContext)x.GetService(mysqlOptions.DbContextType); - mysqlOptions.ConnectionString = dbContext.Database.GetDbConnection().ConnectionString; - return mysqlOptions; + using (var scope = x.CreateScope()) + { + var provider = scope.ServiceProvider; + var dbContext = (DbContext)provider.GetService(mysqlOptions.DbContextType); + mysqlOptions.ConnectionString = dbContext.Database.GetDbConnection().ConnectionString; + return mysqlOptions; + } }); } else diff --git a/src/DotNetCore.CAP.PostgreSql/CAP.PostgreSqlCapOptionsExtension.cs b/src/DotNetCore.CAP.PostgreSql/CAP.PostgreSqlCapOptionsExtension.cs index e4381e041..29e531121 100644 --- a/src/DotNetCore.CAP.PostgreSql/CAP.PostgreSqlCapOptionsExtension.cs +++ b/src/DotNetCore.CAP.PostgreSql/CAP.PostgreSqlCapOptionsExtension.cs @@ -31,9 +31,13 @@ public void AddServices(IServiceCollection services) { services.AddSingleton(x => { - var dbContext = (DbContext)x.GetService(postgreSqlOptions.DbContextType); - postgreSqlOptions.ConnectionString = dbContext.Database.GetDbConnection().ConnectionString; - return postgreSqlOptions; + using (var scope = x.CreateScope()) + { + var provider = scope.ServiceProvider; + var dbContext = (DbContext)provider.GetService(postgreSqlOptions.DbContextType); + postgreSqlOptions.ConnectionString = dbContext.Database.GetDbConnection().ConnectionString; + return postgreSqlOptions; + } }); } else