2014-02-12 32 views
1

我正在使用實體框架使用Code First和Fluent API。未使用Azure上的實體框架創建的表格

在我的本地機器上開發時,數據庫和表格按預期創建,一切正常。

部署到我的Azure Web角色時創建數據庫,但從不創建表。如果我嘗試接觸DbContext的HTTP請求,請求超時,最後我的Web角色只返回「服務不可用」。

該模型很大,但並非如此(在我的開發機器上創建了43個表格)。

這裏有什麼問題?這是我的SQL Azure的連接字符串,在這裏你可以看到我設置的超時相當高:

<add name="MyConnectionString" connectionString="Server=tcp:myserveronazure.database.windows.net,1433;Database=MyDatabase;User [email protected];Password=thepassword;Trusted_Connection=False;Encrypt=True;Connection Timeout=120;PersitSecurityInfo=true;" providerName="System.Data.SqlClient" /> 

編輯:RDP後:荷蘭國際集團到Azure的VM,我看到在事件日誌中的w3wp.exe(該IIS工作進程,如果我沒有弄錯)崩潰。日誌不會列出任何錯誤消息。

+0

您正在數據庫中使用遷移?你的數據庫有一個mi遷移表? – emcas88

+0

我沒有使用任何我知道的遷移。但是,即使數據庫是從頭開始創建的,我的開發機器上的數據庫中也會創建一個「__MigrationHistory」表。這是否意味着什麼? – tremolo

+0

我正在做的唯一的定製是我在DbContext子類中使用Fluent API,在此我重寫了OnModelCreating方法。 – tremolo

回答

1

Enityframework都默認CreateDatabaseIfNotExists,當你打的背景下,第一次,如果您使用的遷移所執行DropCreateDatabaseWhenModelChangesDropCreateDatabaseAlways(我認爲是這樣)三個數據庫初始化器必須使用MigrateDatabaseToLatestVersion初始化工作的應用程序部署。希望它有效!

+0

謝謝你的回答。雖然我沒有使用遷移。我無法解決這個問題,並最終通過在我的開發機器上生成數據庫腳本來手動在Azure上創建數據庫。 – tremolo