public EntityFrameworkCoreDependencyInjectionDecorator(DependencyInjectionTemplate template, IApplication application)
        {
            _template    = template;
            _application = application;
            _template.AddNugetDependency(NugetPackages.EntityFrameworkCoreSqlServer(_template.Project));
            _template.AddNugetDependency(NugetPackages.EntityFrameworkCoreInMemory(_template.Project));
            if (_template.Project.IsNet5App())
            {
                _template.AddNugetDependency("Microsoft.Extensions.Configuration.Binder", "5.0.0");
            }
            if (_template.Project.IsNet6App())
            {
                _template.AddNugetDependency("Microsoft.Extensions.Configuration.Binder", "6.0.0");
            }
            if (_template.ExecutionContext.Settings.GetMultitenancySettings()?.DataIsolation().IsSeparateDatabases() == true)
            {
                _template.AddNugetDependency("Finbuckle.MultiTenant", "6.5.1");
            }

            _template.ExecutionContext.EventDispatcher.Publish(new AppSettingRegistrationRequest(
                                                                   key: "UseInMemoryDatabase",
                                                                   value: "true"));
            _template.ExecutionContext.EventDispatcher.Publish(new ConnectionStringRegistrationRequest(
                                                                   name: "DefaultConnection",
                                                                   connectionString: $"Server=.;Initial Catalog={ _template.OutputTarget.Application.Name };Integrated Security=true;MultipleActiveResultSets=True",
                                                                   providerName: "System.Data.SqlClient"));
        }