using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Design; using Microsoft.Extensions.Configuration; namespace KoogleApp.Data { public class DesignTimeDbContextFactory : IDesignTimeDbContextFactory { 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(); 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); } } }