2012-10-21 64 views
45

我正在使用VS 2012 MVC4代碼首先構建一個Web應用程序。爲了在更改模型後重新創建.mdf文件,我手動從VS中的app_data目錄中刪除了該文件。我已經做了幾次,沒有任何問題。從app_data中刪除.mdf文件導致異常無法將該文件附加爲數據庫

現在我收到一個異常:

基礎提供失敗的打開。 ==>無法附加文件 MYDB.mdf作爲數據庫'MYDB'

我會感謝您的幫助,如何重新創建.mdf文件。

謝謝!

+0

@tdykstra可能有正確的答案,但你從來沒有提到你的連接字符串,所以我們無法確定。 – RickAndMSFT

+0

也許看看這裏 http://stackoverflow.com/questions/17012839/cannot-attach-the-file-mdf-as-database/33718561 –

回答

29

使用SQL Server對象資源管理器刪除數據庫,而不是僅刪除解決方案資源管理器中的.mdf文件。否則,SQL Server實例仍然認爲使用了數據庫名稱,並且下次嘗試將數據庫附加到相同的名稱時它將不起作用。查看初始目錄的部分在此MSDN頁:

http://msdn.microsoft.com/en-us/library/jj653752.aspx#initialcatalog

+1

我想你是對的,因爲我直接從解決方案資源管理器刪除.mdf文件。我還讀了你在這裏建議的內容:[link](http://odetocode.com/Blogs/scott/archive/2012/08/14/a-troubleshooting-guide-for-entity-framework-connections-amp- migrations.aspx)如果有人關心閱讀更多。謝謝。 – Shlo

+2

如果您使用的是Visual Studio Express,請勿永遠刪除mdf文件。您將面臨重新安裝,因爲您無法使用許多工具來糾正這種情況。 – DarkNeuron

1

exit localis iis express and try again。

+0

謝謝,但你的建議並不能解決我的問題。 – Shlo

4

從SQL Management Studio中再試試刪除它。它會抱怨,有沒有物理文件的任何以上,但會從對象瀏覽器中刪除(你會看到刷新後)

4

取下,應該工作在連接字符串這條線;)

「AttachDbFilename = | DataDirectory目錄| whateverdatabasename-20130917064511.mdf」

99

那個什麼固定它對於我來說, 從包管理器控制檯運行這些命令:

sqllocaldb.exe stop v11.0 
    sqllocaldb.exe delete v11.0 

然後:

Update-Database 
+5

如果你想看看你的LocalDb數據庫實例被調用,運行'sqllocaldb info'(在上面的答案中稱爲'v11.0',這是默認的vs2012 ef5)。 – Bakanekobrain

+2

很棒的回答。解決了我的問題 – Tseng

+3

只需要做前兩步(停止和刪除)來解決我的問題 – JonAlb

0

我刪除我的DBContext類,並重新在我的MVC項目中創建它。然後.mdf文件重新創建App_Data

相關問題