从app_data中删除.mdf文件会导致异常无法将文件作为数据库附加

Shl*_*hlo 49 asp.net-mvc entity-framework ef-code-first

我首先使用VS 2012 MVC4代码构建Web应用程序.为了.mdf在更改模型后重新创建文件,我手动从VS中的app_data目录中删除了该文件.我之前做过几次没有任何问题.

现在我收到一个例外:

底层提供程序在Open上失败.==>无法将文件MYDB.mdf作为数据库附加 'MYDB'.

我将非常感谢您提供有关如何重新创建.mdf文件的帮助.

谢谢!

小智 101

这就是为我解决的问题,从Package Manager Console运行以下命令:

  sqllocaldb.exe stop v11.0
  sqllocaldb.exe delete v11.0
Run Code Online (Sandbox Code Playgroud)

然后:

  Update-Database
Run Code Online (Sandbox Code Playgroud)

  • 如果要查看调用的LocalDb数据库实例,请运行`sqllocaldb info`(在上面的答案中,实例称为`v11.0`,这是vs2012 ef5的默认值). (6认同)
  • 只需要执行前两个步骤(停止和删除)来解决我的问题 (3认同)
  • 很好的答案.解决了我的问题 (2认同)
  • 这解决了我的问题.非常感谢你! (2认同)

tdy*_*tra 31

使用SQL Server对象资源管理器删除数据库,而不是仅删除解决方案资源管理器中的.mdf文件.否则,SQL Server实例仍然认为使用了数据库名称,并且下次尝试将数据库附加到同一名称时,它将无法工作.请参阅此MSDN页面中有关初始目录的部分:

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

  • 如果您使用的是Visual Studio Express,请不要手动删除mdf文件.您将面临重新安装,因为您无法访问许多工具来纠正这种情况. (2认同)