using System; using System.IO; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Design; using Microsoft.Extensions.Configuration; namespace DiunaBI.Infrastructure.Data; public class DesignTimeDbContextFactory : IDesignTimeDbContextFactory { public AppDbContext CreateDbContext(string[] args) { var configuration = new ConfigurationBuilder() .SetBasePath(Path.Combine(Directory.GetCurrentDirectory(), "../DiunaBI.API")) .AddJsonFile("appsettings.json", optional: false) .AddJsonFile("appsettings.Development.json", optional: true) .Build(); var optionsBuilder = new DbContextOptionsBuilder(); var connectionString = configuration.GetConnectionString("SQLDatabase"); if (string.IsNullOrEmpty(connectionString)) { throw new InvalidOperationException("Connection string 'SQLDatabase' not found in appsettings.json"); } optionsBuilder.UseSqlServer(connectionString); return new AppDbContext(optionsBuilder.Options); } }