我試圖在Azure試驗中獲得一個MVC 3部署離地面,但似乎已經打了一堵牆讓EF4.1數據庫創建自己。SQL代碼第一個數據庫 - 創建表,而不是刪除/創建
運行時,它會連接成功,但給了錯誤:
Invalid object name 'dbo.TableName'.
我相信這是因爲數據庫存在,但在它沒有桌子。我已經能夠在本地重現它 - 如果刪除我的SQL Express數據庫,數據庫重新創建可以正常工作,但如果我刪除所有表並離開數據庫,則無法正常工作。
我已經閱讀了關於可添加到Global.asax中的方法:這似乎
protected void Application_Start()
{
// Use any of:
System.Data.Entity.Database.SetInitializer<MyDatabaseContext>(new DropCreateDatabaseIfModelChanges<MyDatabaseContext>());
System.Data.Entity.Database.SetInitializer<MyDatabaseContext>(new CreateDatabaseIfNotExists<MyDatabaseContext>());
System.Data.Entity.Database.SetInitializer<MyDatabaseContext>(new DropCreateDatabaseAlways<MyDatabaseContext>());
}
...不工作。有些人會在EdmMetadata表中沒有獲得模型散列的錯誤。
如何獲得EF4.1/Code首先在已經存在的數據庫中創建數據庫結構? (在Azure ......)。或者我必須從SQL Management Studio編寫數據庫腳本,並針對目標數據庫運行它?
的[重新創建實體框架表,而不是數據庫?]可能重複(HTTP:/ /stackoverflow.com/questions/7358673/recreate-entity-framework-tables-not-databases) –