2011-08-10 69 views
3

當tring首先針對Azure數據庫使用實體框架代碼時,我總是收到無效對象名稱。這是一個MVC 3項目,我創建了一個模型,然後使用EF和一個新的上下文控制器。以下是我採取的解決問題的步驟清單。我希望我失去了一些明顯的東西。錯誤在Azure上首先使用EF代碼創建數據庫

  1. 下載VS 2010 SP1
  2. 下載EF 4.1
  3. 設立在Azure中的防火牆例外我的外部IP。
  4. 在我的Web.config中設置Azure中顯示的連接字符串
  5. 關閉防火牆以排除此問題。

看來索引頁試圖拉回來的結果,但解決方案是不創建數據庫,因爲它應該,所以沒有數據庫和我在執行命令確定指標發生了錯誤。任何人?

+1

您是否嘗試過使用本地數據庫的代碼?將連接字符串更改爲本地數據庫並檢查數據庫是否已創建。如果它沒有被創建,那麼你知道這個錯誤在你的EF代碼中。 –

回答

5

我們發現重要的是SQL Azure數據庫不存在。即使我們有一個完全空的數據庫,EF代碼也會失敗。

嘗試讓EF完全從頭創建數據庫。

+0

是的,當我終於明白這一點,我就像Doh!謝謝 – Jesse

+0

你有沒有想過爲什麼它不可能存在?由於SQL Azure中的一些限制?它應該是一個受支持的場景,至少在Azure之外,對吧? – MEMark

1

有幾件事你可以嘗試。爲了確保您可以創建數據庫,顯然您的登錄需要訪問主數據庫,並PersistSecurityInfo需要爲真在連接字符串中:

(下在底部) http://social.msdn.microsoft.com/Forums/en/adonetefx/thread/1e828c99-66a9-4094-87ec-e799bd619463

其次,你需要告訴應用程序在數據庫尚不存在的情況下創建數據庫。在裏面你Globals.asax.cs Application_Start方法中的,試試這個小片段:

using System.Data.Entity; 
... 
... 
protected void Application_Start() { 
    Database.SetInitializer<Models.FunContext>(new CreateDatabaseIfNotExists<Models.FunContext>()); 
} 

希望這有助於,編碼快樂!

相關問題