Поскольку EF Migration предоставляет возможность создавать новые столбцы как часть миграции, как показано ниже.
public class AddRatingMig : DbMigration
{
public override void Up()
{
AddColumn("dbo.Movies", "Rating", c => c.String());
}
public override void Down()
{
DropColumn("dbo.Movies", "Rating");
}
}
Но я хочу создать столбец как часть кода, а не путем миграции. Мы предоставляем администраторам возможность собирать дополнительную информацию о пользователях приложения. Сделать это можно будет с помощью некоторых флажков в интерфейсе. На основе этого столбцы будут добавлены в бэкэнд.
Итак, на что я смотрю, это инжектор для реализации миграции, с помощью которого я могу вызвать метод «AddColumn». Я могу жестко закодировать это, но, учитывая, что EF-migration
или fluent-migrator
делают это с использованием свободного синтаксиса, я проверял, могу ли я его использовать.
public interface IDbManagerService {
void AddColumn(string table, string column)
}
public class DbManager: IDbManagerService {
private readonly ??? dbMigrator;
void AddColumn(string table, string column) {
dbMigrator.AddColumn(table, column)
}
}