56 lines
2.2 KiB
C#
56 lines
2.2 KiB
C#
using Microsoft.EntityFrameworkCore;
|
|
using Microsoft.EntityFrameworkCore.Design;
|
|
using Microsoft.Extensions.Configuration;
|
|
|
|
namespace KoogleApp.Data
|
|
{
|
|
public class DesignTimeDbContextFactory : IDesignTimeDbContextFactory<AppDbContext>
|
|
{
|
|
public AppDbContext CreateDbContext(string[] args)
|
|
{ // Get environment
|
|
|
|
foreach (var item in args)
|
|
{
|
|
Console.WriteLine("ARGS: " + item);
|
|
}
|
|
|
|
string environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
|
|
if (args.Count() > 0)
|
|
{
|
|
environment = args[0];
|
|
}
|
|
Console.WriteLine("ENV: " + environment);
|
|
Console.WriteLine("DIR: " + Directory.GetCurrentDirectory());
|
|
var basePath = Path.Combine(Directory.GetCurrentDirectory(), @"..\KoogleApp");
|
|
Console.WriteLine("BASEPATH: " + basePath);
|
|
basePath = @"C:\work\chrka\Koogle2025\KoogleApp\KoogleApp";
|
|
Console.WriteLine("BASEPATH2: " + basePath);
|
|
// Build config
|
|
|
|
var settingName = Path.Combine(basePath, $"appsettings.{environment}.json");
|
|
Console.WriteLine("using settings: " + settingName);
|
|
|
|
IConfiguration config = new ConfigurationBuilder()
|
|
.SetBasePath(basePath)
|
|
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
|
|
.AddJsonFile($"appsettings.{environment}.json", optional: true)
|
|
.AddEnvironmentVariables()
|
|
.Build();
|
|
|
|
|
|
// Get connection string
|
|
var optionsBuilder = new DbContextOptionsBuilder<AppDbContext>();
|
|
var connectionString = config.GetConnectionString("AppDb");
|
|
Console.WriteLine("ConnectionString: " + connectionString);
|
|
|
|
|
|
//optionsBuilder.UseSqlServer(connectionString, o => o.UseCompatibilityLevel(120));
|
|
optionsBuilder.UseSqlServer(connectionString, o => o.UseCompatibilityLevel(150));
|
|
//optionsBuilder.UseSqlServer(connectionString, o => o.TranslateParameterizedCollectionsToConstants());
|
|
//optionsBuilder.UseSqlServer(connectionString);
|
|
|
|
return new AppDbContext(optionsBuilder.Options);
|
|
}
|
|
}
|
|
}
|