EF5: Cannot attach the file ‘{0}' as database '{1}'
I'm encountering the exact issue as described here (read section "Cannot Attach to Deleted MDF File"), but the solution to the problem is not told there...
In short the issue is that after deleting the .mdf
file, the following exception is thrown when I try to access the DB using EF 5.0.
DataException->EntityException->SqlException:
Cannot attach the file ‘{0}' as database '{1}'
I did delete the DB file and now I get that nasty error message when running the application expecting it to use it's initializer. Any way to fix this?
If you delete the DB file, it still stays registered with SqlLocalDB. Sometimes it fixes it to delete the DB. You can do this from the command line.
- Open the "Developer Command Propmpt for VisualStudio" under your start/programs menu.
-
Run the following commands:
sqllocaldb.exe stop v11.0
sqllocaldb.exe delete v11.0
For those still searching for a solution...
Go to View / SQL Server Object Explorer and delete the database from the (localdb)\v11.0 subnode!
There is essentially a local database retained of where the files should be, and if you want to delete the database files make sure you remove them from this explorer utility, not manually.
I did try JSobell's solution first but did not see my database listed there. I ran CodingWithSpike's commands from VS Developer Command Prompt, but that did not work either. Finally I ran CodingWithSpike's same commands from Package Manager Console and that worked.
PM> sqllocaldb.exe stop v11.0
LocalDB instance "v11.0" stopped.
PM>
PM> sqllocaldb.exe delete v11.0
LocalDB instance "v11.0" deleted.
PM> sqllocaldb.exe start v11.0
LocalDB instance "v11.0" started.
Alright.
My solution was simple, I changed to use local server:
I changed the DataSource
attribute in the connection string from:
Data Source=(LocalDb)\v11.0;blah
To:
Data Source=.\SQLEXPRESS;blah
Another solution is login to LocalDb via SQL Management Studio, and try to delete that database:
However it didn't work for me, when I try to delete it it says "TITLE: Microsoft SQL Server Management Studio
The Database '{0}' does not exist on the server. (SqlManagerUI)
When I try to detach it the database doesn't appear in the list for detach selection, "Take offline" also takes me to the error above.
Which leads me to think this is a solid bug in LocalDB.
The easiest fix is to simply change the name of your DB in the connection string. See Rowan Millers blog How to Drop a Database from Visual Studio 2012 for alternate solutions. We hope to fix this problem in a future edition.