在实体框架中使用MySQL自定义迁移操作6



这是一个简单的问题:是否可以使用MySqlMigrationSqlGenerator为MySQL创建自定义迁移操作?由于MySqlMigrationSqlGenerator类无法像SqlServerMigrationSqlGenerator这样的Statement方法,因此我怎么可能这样做?

您可以从MySqlMigrationSqlGenerator覆盖Generete方法,并沿着:

的行获取一种方法
protected override MigrationStatement Generate(CreateTableOperation op) => base.Generate(op);

MigrationStatement具有Sql字符串侧孔。您可以将自己的SQL添加到此Sql属性中。即:

protected override MigrationStatement Generate(CreateTableOperation op)
{
    MigrationStatement statement = base.Generate(op);
    if(/*Your condition */)
    {
        statement.Sql += $@"; {/*Your Sql*/};";
    }
    return statement;
}

最新更新