Fix DbContext configuration nightmares.

Thanks to julian figuring out IDesignTimeDbContextFactory exists in #6327.

All this DbContext configuration and options setup stuff is insane. Microsoft should be absolutely ashamed for coming up with this load of garbage.
This commit is contained in:
Pieter-Jan Briers
2022-02-03 03:13:34 +01:00
parent 32a1f6ae93
commit 4da56becab
8 changed files with 44 additions and 46 deletions

View File

@@ -8,21 +8,17 @@ namespace Content.Server.Database
{
public sealed class PostgresServerDbContext : ServerDbContext
{
// This is used by the "dotnet ef" CLI tool.
public PostgresServerDbContext()
{
}
static PostgresServerDbContext()
{
AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true);
}
public PostgresServerDbContext(DbContextOptions<PostgresServerDbContext> options) : base(options)
{
}
protected override void OnConfiguring(DbContextOptionsBuilder options)
{
if (!InitializedWithOptions)
options.UseNpgsql("dummy connection string");
options.ReplaceService<IRelationalTypeMappingSource, CustomNpgsqlTypeMappingSource>();
((IDbContextOptionsBuilderInfrastructure) options).AddOrUpdateExtension(new SnakeCaseExtension());
@@ -41,10 +37,6 @@ namespace Content.Server.Database
#endif
}
public PostgresServerDbContext(DbContextOptions<ServerDbContext> options) : base(options)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);