diff --git a/src/Tgstation.Server.Host/Core/Application.cs b/src/Tgstation.Server.Host/Core/Application.cs index b0218e2dc4..7d263ec110 100644 --- a/src/Tgstation.Server.Host/Core/Application.cs +++ b/src/Tgstation.Server.Host/Core/Application.cs @@ -149,17 +149,21 @@ namespace Tgstation.Server.Host.Core builder.EnableSensitiveDataLogging(); }; + void AddTypedContext() where TContext : DatabaseContext + { + services.AddDbContext(ConfigureDatabase); + services.AddScoped(x => x.GetRequiredService()); + } + var dbType = databaseConfiguration?.DatabaseType; - switch (dbType) + switch (databaseConfiguration?.DatabaseType) { case DatabaseType.MySql: case DatabaseType.MariaDB: - services.AddDbContext(ConfigureDatabase); - services.AddScoped(x => x.GetRequiredService()); + AddTypedContext(); break; case DatabaseType.SqlServer: - services.AddDbContext(ConfigureDatabase); - services.AddScoped(x => x.GetRequiredService()); + AddTypedContext(); break; default: throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Invalid {0}: {1}!", nameof(DatabaseType), dbType));