Removed Sender and Receiver properties from EnvelopeHistory. Added ActionDate and Comment properties. Introduced IsMigration property in EGDbContext to conditionally configure foreign key relationships for EnvelopeHistory. Updated EGDbContextFactory to set IsMigration during context creation for migration operations.
46 lines
1.7 KiB
C#
46 lines
1.7 KiB
C#
using EnvelopeGenerator.Application.Configurations;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using Microsoft.EntityFrameworkCore.Design;
|
|
using Microsoft.Extensions.Configuration;
|
|
using Microsoft.Extensions.Options;
|
|
|
|
namespace EnvelopeGenerator.Infrastructure
|
|
{
|
|
public class EGDbContextFactory : IDesignTimeDbContextFactory<EGDbContext>
|
|
{
|
|
public EGDbContext CreateDbContext(string[] args)
|
|
{
|
|
var config = new ConfigurationBuilder()
|
|
.SetBasePath(Directory.GetCurrentDirectory()) // Önemli!
|
|
.AddJsonFile("appsettings.migration.json")
|
|
.Build();
|
|
|
|
// create DbContextOptions
|
|
var optionsBuilder = new DbContextOptionsBuilder<EGDbContext>();
|
|
optionsBuilder.UseSqlServer(config.GetConnectionString("Default"));
|
|
|
|
// create DbTriggerParams
|
|
var triggerLists = config.GetSection("DbTriggerParams").Get<Dictionary<string, List<string>>>();
|
|
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<string>();
|
|
|
|
foreach (var trigger in triggerList.Value)
|
|
{
|
|
dbTriggerParams[tableName].Add(trigger);
|
|
}
|
|
}
|
|
|
|
var dbContext = new EGDbContext(optionsBuilder.Options, Options.Create(dbTriggerParams));
|
|
dbContext.IsMigration = true;
|
|
return dbContext;
|
|
}
|
|
}
|
|
} |