使用實體框架4.3.1首先編碼和數據遷移。如何覆蓋由MigratorScriptingDecorator生成的SQL腳本
我已經編寫了一個實用程序,使用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」語句,以便每個遷移都在單獨的批處理中,這可以解決問題。
任何人有任何想法如何做到這一點,或者如果我吠叫錯誤的樹,那麼也許你可以建議一個更好的方法?
你覺得類似的解決方法可能爲正常的直表插入生成的SQL可能嗎? –