domBudg/back/Controllers/Extensions/DatabaseSetupExt.cs

30 lines
1.0 KiB
C#

using Infrastructure;
using Microsoft.EntityFrameworkCore;
namespace Controllers.Extensions;
public static class DatabaseSetupExtension
{
public static void AddDbConnectionService(this IServiceCollection services, IConfiguration config)
{
var connectionString = config.GetConnectionString("DefaultConnection")
?? throw new ArgumentException("Нет строки подключения");
services.AddDbContext<DatabaseContext>(options => options.UseNpgsql(connectionString));
services.AddSingleton<IDbContextFactory<DatabaseContext>, DbContextFactory>();
}
public static void MigrateDb(this IApplicationBuilder app)
{
try
{
using var scope = app.ApplicationServices.CreateScope();
var context = scope.ServiceProvider.GetRequiredService<IDbContextFactory<DatabaseContext>>();
using var db = context.CreateDbContext();
db.Database.Migrate();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}