Собственная кастомная логика создания миграций
Редактировал(а) Alexandr Fokin 2023/08/12 10:40
1) | Пользовательские операции миграции https://learn.microsoft.com/ru-ru/ef/core/managing-schemas/migrations/operations |
2) | Реализация (и встраивание) собственного ICSharpMigrationOperationGenerator (например можно использовать подход на основе декоратора). How to customize migration generation in EF Core Code First? using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Migrations.Design; using Microsoft.EntityFrameworkCore.Migrations.Operations; namespace model.db.migrationModel { public class MigrationGeneratorDecarator : ICSharpMigrationOperationGenerator { private readonly ICSharpMigrationOperationGenerator _source; private readonly CSharpMigrationOperationGeneratorDependencies _dependencies; public MigrationGeneratorDecarator( ICSharpMigrationOperationGenerator source, CSharpMigrationOperationGeneratorDependencies dependencies ) { _source = source; _dependencies = dependencies; } public void Generate( string builderName, IReadOnlyList<MigrationOperation> operations, IndentedStringBuilder builder ) { _source.Generate( builderName, operations, builder ); GenerateAdditional( builderName, operations, builder ); } private void GenerateAdditional( string builderName, IReadOnlyList<MigrationOperation> operations, IndentedStringBuilder builder ) { Debugger.Launch(); //builder.AppendLine("MyQeury text"); var code = BuildInsertQuery(); builder.Append(code); } } } |