实体框架迁移脚本中的MySql存储过程/循环

时间:2015-02-04 10:01:30

标签: mysql entity-framework stored-procedures entity-framework-6 data-migration

所以我的问题是我需要在Migration脚本中使用一个循环才能将数据传输到新状态。 但是,似乎没有必要在迁移脚本中的Sql语句中创建存储过程。

以下内容将导致语句的“DELIMITER”部分出现语法错误:

public override void Up()
{
    Sql(@"
    DROP PROCEDURE IF EXISTS SomeProcedure(); 
    DELIMITER //
    CREATE PROCEDURE SomeProcedure()
    BEGIN
        ...
    END //
    DELIMITER ;
    CALL SomeProcedure();
    ");
}

该语句在MySql Workbench中运行良好。所以它必须是处理导致问题的语句的EF方式。

现在我的问题是:在迁移脚本中是否有任何方法可以创建存储过程?

似乎是DELIMITER会导致语法错误,但如果没有它,创建存储过程是不可能的? (我正在使用EF6)

我确实试图将声明分开,没有任何成功。我也尝试过不同的分隔符。

1 个答案:

答案 0 :(得分:0)

使用CreateStoredProcedure方法创建存储过程是可行的。

"Multiple spaces".trim()

return Multiple Spaces

此处有更多信息:http://community.sharpdevelop.net/blogs/mattward/archive/2013/12/23/EntityFramework6CodeFirstMigrations.aspx