diff --git a/src/AbpDesk/AbpDesk.ConsoleDemo/AbpDesk/ConsoleDemo/Program.cs b/src/AbpDesk/AbpDesk.ConsoleDemo/AbpDesk/ConsoleDemo/Program.cs index 10b47e6ad1..dc9a9e665f 100644 --- a/src/AbpDesk/AbpDesk.ConsoleDemo/AbpDesk/ConsoleDemo/Program.cs +++ b/src/AbpDesk/AbpDesk.ConsoleDemo/AbpDesk/ConsoleDemo/Program.cs @@ -1,5 +1,6 @@ using System; using Microsoft.Extensions.DependencyInjection; +using Volo.Abp; namespace AbpDesk.ConsoleDemo { @@ -13,20 +14,12 @@ namespace AbpDesk.ConsoleDemo { application.Initialize(scope.ServiceProvider); - application - .ServiceProvider - .GetRequiredService() - .List(); + RunDemo(application); - application - .ServiceProvider - .GetRequiredService() - .List(); + Console.WriteLine("Press ENTER to run again..."); + Console.ReadLine(); - application - .ServiceProvider - .GetRequiredService() - .List(); + RunDemo(application); Console.WriteLine(); Console.WriteLine("Press ENTER to exit..."); @@ -35,5 +28,23 @@ namespace AbpDesk.ConsoleDemo application.Shutdown(); } } + + private static void RunDemo(AbpApplication application) + { + application + .ServiceProvider + .GetRequiredService() + .List(); + + application + .ServiceProvider + .GetRequiredService() + .List(); + + application + .ServiceProvider + .GetRequiredService() + .List(); + } } } diff --git a/src/Volo.Abp.EntityFrameworkCore/Microsoft/Extensions/DependencyInjection/AbpEfCoreServiceCollectionExtensions.cs b/src/Volo.Abp.EntityFrameworkCore/Microsoft/Extensions/DependencyInjection/AbpEfCoreServiceCollectionExtensions.cs index fcb2a8e8fe..da29e6487c 100644 --- a/src/Volo.Abp.EntityFrameworkCore/Microsoft/Extensions/DependencyInjection/AbpEfCoreServiceCollectionExtensions.cs +++ b/src/Volo.Abp.EntityFrameworkCore/Microsoft/Extensions/DependencyInjection/AbpEfCoreServiceCollectionExtensions.cs @@ -15,7 +15,7 @@ namespace Microsoft.Extensions.DependencyInjection .AddLogging(); services.TryAddTransient(); - services.TryAddSingleton(DbContextOptionsFactory.Create); + services.TryAddTransient(DbContextOptionsFactory.Create); var options = new AbpDbContextRegistrationOptions(); optionsBuilder?.Invoke(options); diff --git a/src/Volo.Abp.MultiTenancy/Volo/Abp/Data/MultiTenancy/MultiTenantConnectionStringResolver.cs b/src/Volo.Abp.MultiTenancy/Volo/Abp/Data/MultiTenancy/MultiTenantConnectionStringResolver.cs index 1c0e319948..ed9d41e9a8 100644 --- a/src/Volo.Abp.MultiTenancy/Volo/Abp/Data/MultiTenancy/MultiTenantConnectionStringResolver.cs +++ b/src/Volo.Abp.MultiTenancy/Volo/Abp/Data/MultiTenancy/MultiTenantConnectionStringResolver.cs @@ -14,7 +14,7 @@ namespace Volo.Abp.Data.MultiTenancy private readonly ITenantConnectionStringStore _tenantConnectionStringStore; public MultiTenantConnectionStringResolver( - IOptions options, + IOptionsSnapshot options, IMultiTenancyManager multiTenancyManager, ITenantConnectionStringStore tenantConnectionStringStore) : base(options) diff --git a/src/Volo.Abp/Volo/Abp/Data/DefaultConnectionStringResolver.cs b/src/Volo.Abp/Volo/Abp/Data/DefaultConnectionStringResolver.cs index 975324ebea..d9283749d5 100644 --- a/src/Volo.Abp/Volo/Abp/Data/DefaultConnectionStringResolver.cs +++ b/src/Volo.Abp/Volo/Abp/Data/DefaultConnectionStringResolver.cs @@ -7,9 +7,9 @@ namespace Volo.Abp.Data { public class DefaultConnectionStringResolver : IConnectionStringResolver, ITransientDependency { - private readonly DbConnectionOptions _options; //TODO: Use IOptionsSnapshot? + private readonly DbConnectionOptions _options; - public DefaultConnectionStringResolver(IOptions options) + public DefaultConnectionStringResolver(IOptionsSnapshot options) { _options = options.Value; }