Как вставить строку, если ключ не существует с помощью FluentMigrator

Мне нужно создать миграцию, которая добавит несколько строк, но только если они не существуют.

В настоящее время при наличии конфликта первичного ключа из-за того, что строка уже существует, миграция завершается ошибкой.

Я знаю, как создать таблицу, если таблицы не существует, но я не могу сделать то же самое для данных.

Другим вариантом может быть операция upsert или merge, но не нашел, как это сделать с помощью FluentMigrator (без выполнения скрипта)


person Fernando    schedule 14.05.2016    source источник


Ответы (1)


Вы не можете сделать это напрямую, используя свободный интерфейс. Как вы сказали, вам придется либо выполнить сценарий, либо написать команды sql в самой миграции и запустить ее. Что-то типа

public override void Up()
{
    var sqlCommand = string.Format([YOUR SQL COMMANDS]);
    Execute.Sql(sqlCommand);
}
person Tarek    schedule 05.06.2016