labdb/Program.cs
2022-11-19 22:46:32 +01:00

54 lines
1.5 KiB
C#

using labdb.Models;
using Microsoft.EntityFrameworkCore;
namespace labdb;
public static class Program
{
public static void Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);
builder.Host.UseSystemd();
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection") ??
throw new InvalidOperationException("Connection string 'DefaultConnection' not found.");
builder.Services.AddDbContextFactory<AppDbContext>(options => options
.UseNpgsql(connectionString, x => x
.UseNetTopologySuite()
)
.UseSnakeCaseNamingConvention()
.UseAllCheckConstraints()
);
builder.Services.AddRazorPages();
builder.Services.AddServerSideBlazor();
var app = builder.Build();
app.MigrateDatabase();
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Error");
}
app.UseStaticFiles();
app.UseRouting();
app.MapBlazorHub();
app.MapFallbackToPage("/_Host");
app.Run();
}
private static void MigrateDatabase(this WebApplication app)
{
var dbContextFactory = app.Services.GetRequiredService<IDbContextFactory<AppDbContext>>();
using var dbContext = dbContextFactory.CreateDbContext();
dbContext.Database.Migrate();
}
}