2012-08-03 73 views
3

我在我的web應用程序中解除實體框架。早些時候一切工作正常。但後來我從Sql Server中刪除了數據庫。之後,每當我運行應用程序,我得到以下異常:底層提供者在開放實體框架上失敗

The underlying provider failed on open entity framework 

是不是真的,如果我們刪除從SQL Server數據庫中,並再次運行應用程序,數據庫再次創造的呢?

回答

3

你可以顯示一些關於連接字符串的細節。我基本上想檢查您正在使用的身份驗證。 設置典型認證的演示:http://msdn.microsoft.com/en-us/library/ff649314.aspx

另一種可能性是連接池。嘗試顯式關閉的連接(如果有任何打開的連接)

db.Database.Connection.Close(); 
3

實體框架將重新創建的應用程序數據庫開始假設如下:

  • 你有權限在SQL
  • 連接字符串正確指定(創建數據庫,如果它是之前的工作,這應該是罰款)
  • 您正在使用的數據庫CodeFirst或ModelFirst策略(即如果你生成的EDMX關閉現有的數據庫,它不會重新創建它你)
+0

這三點都是真的。我正在使用代碼第一個戰略。 – Nitish 2012-08-03 10:30:10

+0

您收到的錯誤通常與基於權限或連接的問題有關。我會建議在天氣情況下進行故障排除,運行應用程序的用戶(或conn字符串)可以訪問和創建數據庫。嘗試使用這些憑據手動執行此操作。 – 2012-08-03 10:36:22

+0

手動你的意思是在Sql服務器上? – Nitish 2012-08-03 10:37:38

0

我有一個類似的錯誤,這是由於連接問題。 通常您需要在您的實體(EDML)下打開* .EDPS文件並檢查連接字符串,並確保它具有正確的設置,尤其是默認的Oracle主目錄。

相關問題