在进行code first的迁移时,update-database后默认在App_data文件夹下会新建数据库,如果删除了在使用update-database命令会出现以下错误:

Cannot attach the file 'E:\WebApiStudy\App_Data\BooksAPIContext-20150419115728.mdf' as database 'BooksAPIContext-20150419115728'.

原因:虽然.mdf文件被删除了,但是在localdb中的引用还在。

解决方案:

1.在nuget控制台中运行以下命令:

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

其中 v11.0是实例名,来之组连接字符串

<connectionStrings>
<add name="BooksAPIContext" connectionString="Data Source=(localdb)\v11.0; Initial Catalog=BooksAPIContext-20150419115728; Integrated Security=True; MultipleActiveResultSets=True; AttachDbFilename=|DataDirectory|BooksAPIContext-20150419115728.mdf"
providerName="System.Data.SqlClient" />
</connectionStrings>

2.改变连接字符串的名字(生成的数据库的名字是连接字符串的名字)

Localdb Attach Problem-LMLPHP

3.使用sqlserver连上(localdb)\V11.0 实例,删除这个数据库

之后再运行update-database命令就正常了。

原文:Localdb Attach Problem in Visual Studio 2013

05-01 05:46