2016-10-26 11 views
0

Когда я создаю новую таблицу для моего Azure Backend с использованием кода Первый миграции, сценарий выглядит

Azure Backend - Code First Migration - CREATE TRIGGER должен быть первым оператором

CREATE TABLE (...)
CREATE TRIGGER ...
...
ВСТАВИТЬ [DBO]. [__ MigrationHistory] ...

И он всегда терпит неудачу говоря "CREATE TRIGGER должен быть первым оператором".

У меня есть обходные пути, чтобы заставить его работать, но я хотел бы понять, если это ошибка с первой миграцией кода или я не использую ее правильно.

ответ

0

В нем говорится, что ваш скрипт должен начинаться с «CREATE TRIGGER». В студии управления SQL вы должны поставить «GO» непосредственно перед CREATE TRIGGER. «GO» не является реальной командой T-SQL, это похоже на разделение строки вашего скрипта.

Если ваш скрипт является SQL-файл, поставить «GO» и сделать некоторые вещи, как:

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

я мог однако сделать что-то подобное тому, что вы предлагаете, такие как замена «создать триггер» с «идти создать триггер ". Но то, что мне действительно нужно, - это то, почему Code First не делает это правильно. –