#if NET using EnvelopeGenerator.Application.Common.Configurations; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Design; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Options; namespace EnvelopeGenerator.Infrastructure { public class EGDbContextFactory : IDesignTimeDbContextFactory { public EGDbContext CreateDbContext(string[] args) { var config = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) // Önemli! .AddJsonFile("appsettings.migration.json") .Build(); // create DbContextOptions var optionsBuilder = new DbContextOptionsBuilder(); optionsBuilder.UseSqlServer(config.GetConnectionString("Default")); // create DbTriggerParams var triggerLists = config.GetSection("DbTriggerParams").Get>>(); var dbTriggerParams = new DbTriggerParams(); if (triggerLists is not null) foreach (var triggerList in triggerLists) { if (triggerList.Value.Count == 0) continue; // Skip empty trigger lists var tableName = triggerList.Key; dbTriggerParams[tableName] = new List(); foreach (var trigger in triggerList.Value) { dbTriggerParams[tableName].Add(trigger); } } var dbContext = new EGDbContext(optionsBuilder.Options, Options.Create(dbTriggerParams)); dbContext.IsMigration = true; return dbContext; } } } #endif