My answer on stackoverflow.com, so I remember how to do this next time.
ASP.NET MVC 4: Basically I've followed a tutorial and decided to delete the .mdf file afterwards.
Now whenever I try to run the application I get the following error: "Cannot attach the file *.mdf as database"
To fix this using SQL SERVER Management Studio
Your problem: You get an error such as 'Cannot attach the file 'YourDB.mdf' as database 'YourConnStringNamedContext';
Reason: happens because you deleted the backing files .mdf, ldf without actually deleting the database within the running instance of SqlLocalDb; re-running the code in VS won't help because you cannot re-create a DB with the same name (and that's why renaming works, but leaves the old phantom db name lying around).
The Fix: I am using VS2012, adopt similarly for a different version.
Navigate to below path and enter
c:\program files\microsoft sql server\110\Tools\Binn>sqllocaldb info
Above cmd shows the instance names, including 'v11.0'
If the instance is already running, enter at the prompt
sqllocaldb info v11.0
Note the following info Owner: YourPCName\Username , State: Running , Instance pipe name: np:.\pipe\LOCALDB#12345678\tsql\query , where 123456789 is some random alphanumeric
If State is not running or stopped, start the instance with
sqllocaldb start v11.0
and extract same info as above.
In the SS Management Studio 'Connect' dialog box enter
server name: np:.\pipe\LOCALDB#12345678\tsql\query
auth: Windows auth
user name: (same as Owner, it is grayed out for Win. auth.)
Once connected, find the phantom DB which you deleted (e.g. YourDB.mdf should have created a db named YourDB), and really delete it.
Done! Once it's gone, VS EF should have no problem re-creating it.