在进行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.改变连接字符串的名字(生成的数据库的名字是连接字符串的名字)
3.使用sqlserver连上(localdb)\V11.0 实例,删除这个数据库
之后再运行update-database命令就正常了。