Web Api layout

This commit is contained in:
Jöran Malek 2024-02-07 22:16:59 +01:00
parent 5619093f41
commit da6d5576bf
32 changed files with 515 additions and 29 deletions

View file

@ -0,0 +1,32 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Design;
namespace InkForge.Migrations;
public abstract class MigratingDbContextFactory<T> : IDesignTimeDbContextFactory<T>
where T : DbContext
{
public T CreateDbContext(string[] args)
{
var configuration = new ConfigurationBuilder()
.AddCommandLine(args)
.Build();
var options = new DbContextOptionsBuilder<T>();
switch (configuration.GetValue<string>("DbProvider"))
{
case null:
throw new Exception("DbProvider not set.");
case { } provider:
Configure(options, configuration.GetConnectionString("DefaultConnection")!, provider);
break;
}
return CreateDbContext(options.Options);
}
protected abstract void Configure(DbContextOptionsBuilder<T> optionsBuilder, string connectionString, string provider);
protected abstract T CreateDbContext(DbContextOptions<T> options);
}