Я настраиваю Entity Framework Core в новом API для развертывания в существующей базе данных SQL Server, которая используется приложениями Entity Framework 4.6. Существует одна таблица истории миграции, которая используется другими приложениями и содержит 2 поля, которые необходимо заполнить для каждой записи: ContextKey и Model. Entity Framework Core не имеет ключа контекста и не сохраняет модель в таблице истории миграции.
Я уже создал HistoryRepository: SqlServerHistoryRepository и настроил Entity Framework Core для его использования, но метод ConfigureTable позволяет только создавать дополнительные столбцы, но фактически не заполнять каждую запись, поскольку она вставляется с пользовательскими данными. Предоставление значения по умолчанию для столбца не является решением.
public class HistoryRepository : SqlServerHistoryRepository
{
public HistoryRepository(HistoryRepositoryDependencies dependencies)
: base(dependencies)
{
}
protected override void ConfigureTable(EntityTypeBuilder<HistoryRow> history)
{
base.ConfigureTable(history);
history.Property<string>("ContextKey")
.HasMaxLength(300);
history.Property<byte[]>("Model");
}
}
services.AddDbContext<MDSContext>(options =>
options.UseLazyLoadingProxies()
.UseSqlServer(
connectionString,
x => x.MigrationsHistoryTable("__MigrationHistory")).ReplaceService<Microsoft.EntityFrameworkCore.Migrations.IHistoryRepository, Burkhart.CoreServices.IncomingOrders.Core.Models.Base.HistoryRepository>()
);
Я должен иметь возможность предоставить пользовательское значение для ContextKey и Model динамически