Как я могу переопределить сценарии SQL, сгенерированные MigratorScriptingDecorator

Использование кода Entity Framework 4.3.1 в первую очередь и миграция данных.

Я написал утилиту для автоматического создания сценариев миграции для целевой базы данных с помощью MigratorScriptingDecorator.

Однако иногда при повторном создании целевой базы данных с нуля сгенерированный сценарий оказывается недействительным, поскольку он дважды объявляет переменную с одним и тем же именем.

Имя переменной: @var0.

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

Проблема возникает как при генерации кода формы скрипта, так и при использовании консольной команды диспетчера пакетов:

Update-Database -Script

Вот неправильные фрагменты из сгенерированного скрипта:

DECLARE @var0 nvarchar(128)
SELECT @var0 = name
FROM sys.default_constraints
WHERE parent_object_id = object_id(N'SomeTableName')

и

DECLARE @var0 nvarchar(128)
SELECT @var0 = name
FROM sys.default_constraints
WHERE parent_object_id = object_id(N'SomeOtherTableName')

Я хотел бы иметь возможность переопределите точку, где он генерирует SQL для каждой миграции, а затем добавьте оператор «GO», чтобы каждая миграция находилась в отдельном пакете, что решит проблему.

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

6
задан David Sette 7 June 2012 в 10:46
поделиться