32 lines
1.2 KiB
C#

using System;
using System.IO;
using gehGassi.Core.Interfaces;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Design;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Options;
namespace gehGassi.Persistence
{
public class DbContextFactory : IDesignTimeDbContextFactory<SqlDbContext>
{
public SqlDbContext CreateDbContext(string[] args)
{
var environmentName = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{environmentName}.json", optional: true);
var configuration = builder.Build();
var optionsBuilder = new DbContextOptionsBuilder<SqlDbContext>();
optionsBuilder.UseSqlServer(configuration.GetConnectionString("SqlDbContext"), x => x.UseNetTopologySuite());
var option = Options.Create<AuditOptions>(new AuditOptions() { IsEnabled = false });
return new SqlDbContext(optionsBuilder.Options, option);
}
}
}