32 lines
1.2 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|