2017-09-29 30 views
0

請幫助我在ef6移植中帶來一個不便。 我經常更換我的模型(因爲我沒有完全理解模式)。 我有兩個遷移: 1.初始(EF6通過我的模型產生這種遷移) 2. AddtionalInit(需要初始化後執行一些手動的SQL代碼)EF6重新腳手架初始移植

當我改變我的模式,我想重新腳手架初始遷移以應用更改。我遷移到-TargetMigration:0和嘗試執行:

add-migration Initial -force 

,但它與錯誤

Unable to generate an explicit migration because the following explicit migrations are pending: [201709290630180_Initial, 201709290631135_AdditionalInit]. Apply the pending explicit migrations before attempting to generate a new explicit migration 

我可以重新腳手架初始遷移扔而不刪除AdditionalInit遷移?

P.S.對不起英文。

回答

0

您只能重新搭建最新的遷移。 您應該在您的Initial遷移保留某處您手動添加的代碼後刪除遷移。然後重新腳手架,然後重新添加手動代碼。

+0

這很不方便。還有其他解決方案嗎? –

+0

它是,但仍然是它如何工作的方式 – sabotero

0

從技術上講,你可以使用與原始SQL種子法適用任何額外的架構更改。您必須設置Raw SQL才能執行「檢查」,以確保它的更改在運行之前尚未應用,因爲每次啓動應用程序時都會運行種子方法。

可能最好將其移動在它自己的移民一旦你的模式的轉變是穩定的,但是這是如果你有噸的遷移變化而發展,將工作的替代品。