protected override void Load(ContainerBuilder builder) { #region DbContext Registrations builder.Register(componentContext => { var env = componentContext.Resolve <IWebHostEnvironment>(); bool isDevelopment = env.EnvironmentName == "Development"; var configuration = componentContext.Resolve <IConfiguration>(); var optionsBuilder = new DbContextOptionsBuilder <UserSqlDbContext>() .UseNpgsql(configuration.GetReadStoreConnectionString(), option => { option.MigrationsHistoryTable("EFMigrationsHistory"); }); optionsBuilder.EnableSensitiveDataLogging(!isDevelopment); optionsBuilder.EnableDetailedErrors(isDevelopment); var context = new UserSqlDbContext(optionsBuilder.Options); context.Database.Migrate(); return(context); }).AsSelf() .AsImplementedInterfaces() .InstancePerLifetimeScope(); #endregion builder.RegisterType <PasswordService>().As <IPasswordService>().SingleInstance(); builder.RegisterType <UserRepository>().As <IUserRepository>().InstancePerLifetimeScope(); builder.RegisterType <UnitOfWork <IUserSqlDbContext> >().As <IUnitOfWork <IUserSqlDbContext> >().InstancePerLifetimeScope(); builder.RegisterType <UserDatabaseInitializer>().As <IUserDatabaseInitializer>().InstancePerDependency(); }
public UserDatabaseInitializer(UserSqlDbContext masterDbContext) { _dbContext = masterDbContext; }