2015-02-11 115 views
0

我寫了一個當前沒有天藍色連接的API。我現在準備將此發佈到Azure。在這樣做的時候,我假設,就像許多其他部署一樣,將會有代碼優先遷移的選項。該網站已經存在,所以當我登錄我在下拉菜單中選擇我的網站下載下來,但屏幕我得到看起來像下面的其中代碼爲先遷移複選框應該是:通過Visual Studio 2013部署時無代碼優先遷移

enter image description here

我如何更正此問題,以便我可以使用代碼優先遷移進行部署?

回答

0

我找到了解決這個問題的方法。如果發生這種情況,則將發佈配置文件設置爲更新數據庫模式,但不允許代碼優先遷移。我無法說出爲什麼Visual Studio有時會這樣做,但爲了解決它,您需要更改代表該配置文件的xml文件。可以在「發佈配置文件」文件夾下找到它們。很可能,您的<PublishDatabaseSettings>元素將有一個<Object Type="Dbfx...etc.">和可能和<UpdateFrom>元素。擺脫這些並用下面的設置替換。

<PublishDatabaseSettings> 
    <Objects xmlns=""> 
    <ObjectGroup Name="Namespace.Models.YourDBClass" Order="1" Enabled="True"> 
     <Destination Path="your-connection-string-goes-here" /> 
     <Object Type="DbCodeFirst"> 
     <Source Path="DBMigration" DbContext="Namespace.Models.YourDBClass, AssamblyName" MigrationConfiguration="Namespace.Migrations.Configuration, Assambly" Origin="Convention" /> 
     </Object> 
    </ObjectGroup> 
    </Objects> 
</PublishDatabaseSettings> 

現在乾淨和重建的好措施,你應該準備好去。請注意,如果您不刪除PublishDatabaseSettings元素中的其他預生成元素,架構將在發佈時進行更新,並且在第一次嘗試擊中API並進行遷移時,您可能會遇到錯誤。就我而言,並且在大多數情況下,這將是'X already exists'錯誤,因爲遷移嘗試創建已使用模式更新創建的表。

我能夠找出問題,並在本文的幫助下糾正它:http://www.dominicstpierre.com/2012/11/enable-code-first-migrations-check-box.html

相關問題