Cannot attach the file *.mdf as database

后端 未结 22 1900
猫巷女王i
猫巷女王i 2020-11-27 14:22

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

22条回答
  •  谎友^
    谎友^ (楼主)
    2020-11-27 14:38

    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.

提交回复
热议问题