动态向数据库表添加新列

时间:2019-11-21 03:06:52

标签: c# asp.net-core ef-migrations fluent-migrator

由于EF迁移确实提供了一种在迁移过程中创建新列的方法,如下所示

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-migrationfluent-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)
             }
        }

0 个答案:

没有答案