【问题标题】:Azure Backend - Code First Migration - CREATE TRIGGER must be the first statementAzure 后端 - 代码优先迁移 - CREATE TRIGGER 必须是第一条语句
【发布时间】:2017-03-08 20:54:58
【问题描述】:

当我使用 Code First 迁移为我的 Azure 后端创建新表时,脚本如下所示

创建表(...)
创建触发器 ...
...
插入 [dbo].[__MigrationHistory] ​​...

而且它总是说“CREATE TRIGGER 必须是第一个语句”。

我有解决方法让它工作,但是我想了解这是代码优先迁移的错误还是我没有正确使用它。

【问题讨论】:

    标签: azure azure-mobile-services entity-framework-migrations


    【解决方案1】:

    它说您的脚本必须以“CREATE TRIGGER”开头。在 SQL Management Studio 中,您可以在 CREATE TRIGGER 之前放置一个“GO”。 "GO" 不是一个真正的 T-SQL 命令,它就像你的脚本的字符串拆分。

    如果您的脚本是 SQL 文件,请输入“GO”并执行以下操作:

    foreach (var script in fullScript.Split(new[] { "GO" }, StringSplitOptions.RemoveEmptyEntries))
    {
        _dbContext.ExecuteSqlCommand(script);
    }
    

    【讨论】:

    • 但是,我可以做一些类似于您建议的事情,例如将“create trigger”替换为“go create trigger”。但我真正追求的是为什么 Code First 没有正确地做到这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-21
    • 2016-05-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多