public DbContextOptionsBuilder Extend( DbContextOptionsBuilder optionsBuilder, IDatabaseConnectionStringFactory connectionStringFactory, string assemblyName) { return(optionsBuilder.UseMySql( connectionStringFactory.Create(), sqlOptions => { sqlOptions.MigrationsAssembly(assemblyName); sqlOptions.ServerVersion( new Version( _options.Major, _options.Minor, _options.Build), ServerType.MySql); sqlOptions.EnableRetryOnFailure( 15, TimeSpan.FromSeconds(30), null); }) .EnableSensitiveDataLogging()); }
public FactoryForConfigurationDb() { _config = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .Build(); _extendOptionsBuilder = new InMemoryDbContextOptionsBuilderFactory(); _dbConnectionStringFactory = new NoOpDatabaseConnectionStringFactory(); }
public DbContextOptionsBuilder Extend( DbContextOptionsBuilder optionsBuilder, IDatabaseConnectionStringFactory connectionStringFactory, string assemblyName) { return(optionsBuilder.UseSqlite( "Data Source=App_Data\\localdb.db", sqlOptions => { sqlOptions.MigrationsAssembly(assemblyName); })); }
public ContextFactoryForApplicationDb() { _config = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json") .AddUserSecrets <Startup>() .Build(); _extendOptionsBuilder = new SqlServerDbContextOptionsBuilderFactory(); _dbConnectionStringFactory = new SqlServerDatabaseConnectionStringFactory(_config); }
public static IServiceCollection AddMiniService(this IServiceCollection services, Assembly startupAssembly) { ServiceProvider serviceProvider = services.BuildServiceProvider(); IConfiguration config = serviceProvider.GetService <IConfiguration>(); IExtendDbContextOptionsBuilder extendOptionsBuilder = serviceProvider.GetService <IExtendDbContextOptionsBuilder>(); IDatabaseConnectionStringFactory dbConnectionStringFactory = serviceProvider.GetService <IDatabaseConnectionStringFactory>(); services.AddEfCore(); services.AddRouting(options => options.LowercaseUrls = true); services.AddOptions() .Configure <PersistenceOption>(config.GetSection("EfCore")); void optionsBuilderAction(DbContextOptionsBuilder optionsBuilder) { extendOptionsBuilder.Extend( optionsBuilder, dbConnectionStringFactory, startupAssembly.GetName().Name); } services.AddDbContext <ApplicationDbContext>(options => optionsBuilderAction(options)); services.AddScoped <DbContext>(resolver => resolver.GetRequiredService <ApplicationDbContext>()); services.AddHttpContextAccessor(); services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>(); services.AddSingleton <IActionContextAccessor, ActionContextAccessor>(); services.AddScoped <IUrlHelper>(implementationFactory => { ActionContext actionContext = implementationFactory.GetService <IActionContextAccessor>().ActionContext; return(new UrlHelper(actionContext)); }); services.AddSingleton(typeof(RestClient), typeof(RestClient)); services.AddMvcCore().AddVersionedApiExplorer( options => { options.GroupNameFormat = "'v'VVV"; options.SubstituteApiVersionInUrl = true; }); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); services.AddApiVersioning(o => { o.ReportApiVersions = true; }); return(services); }
public DbContextOptionsBuilder Extend( DbContextOptionsBuilder optionsBuilder, IDatabaseConnectionStringFactory connectionStringFactory, string assemblyName) { return(optionsBuilder.UseSqlServer( connectionStringFactory.Create(), sqlOptions => { sqlOptions.MigrationsAssembly(assemblyName); sqlOptions.EnableRetryOnFailure( maxRetryCount: 15, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null); }) .EnableSensitiveDataLogging()); }
protected DesignTimeDbContextFactoryBase() { Config = BuildConfig(); ExtendOptionsBuilder = BuildExtendOptionsBuilder(); DbConnectionStringFactory = BuildDbConnectionStringFactory(); }