Использование кода 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», чтобы каждая миграция находилась в отдельном пакете, что решит проблему.
У кого-нибудь есть идеи, как это сделать, или, если я лаю не по тому дереву, может быть, вы могли бы предложить лучший подход?