public static void SetDatabaseConnection(this DbContextOptionsBuilder dbContextOptionsBuilder, IConfiguration config) { if (!dbContextOptionsBuilder.IsConfigured) { var connectionString = DbConnectionManager.ConnectionString(config); switch (DbConnectionManager.DatabasePlatformName(config)) { case "InMemory": dbContextOptionsBuilder.UseInMemoryDatabase(databaseName: connectionString); break; case "Npgsql": dbContextOptionsBuilder.UseNpgsql(connectionString); break; case "Sqlite": dbContextOptionsBuilder.UseSqlite(connectionString); break; case "SqlServer": dbContextOptionsBuilder.UseSqlServer(connectionString); break; default: dbContextOptionsBuilder.UseInMemoryDatabase(databaseName: connectionString); break; } } }
public static void ConfigureRepositoryContext(this IServiceCollection services, IConfiguration config) { var databaseConnectionString = DbConnectionManager.ConnectionString(config); switch (DbConnectionManager.DatabasePlatformName(config)) { case "InMemory": services.AddDbContext <SchoolMachineContext> (options => options.UseInMemoryDatabase(databaseName: databaseConnectionString)); break; case "Npgsql": services .AddEntityFrameworkNpgsql() .AddDbContext <SchoolMachineContext>(options => options.UseNpgsql(databaseConnectionString)); break; case "Sqlite": services.AddDbContext <SchoolMachineContext> (options => options.UseSqlite(databaseConnectionString)); break; case "SqlServer": services.AddDbContext <SchoolMachineContext> (options => options.UseSqlServer(databaseConnectionString)); break; default: services.AddDbContext <SchoolMachineContext> (options => options.UseInMemoryDatabase(databaseName: databaseConnectionString)); break; } }