domBudg/back/Controllers/Extensions/DatabaseSetupExt.cs

30 lines
1.0 KiB
C#
Raw Normal View History

2024-11-25 20:56:39 +04:00
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();
2024-11-25 20:56:39 +04:00
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}