代码优先迁移中的update-database命令出错

Nps*_*Nps 21 c# sql-server entity-framework code-migration

我正在使用WPF中的桌面应用程序并使用LocalDB创建SqlRepository 来存储数据.我正在使用以下工具

  • Visual Studio 2013社区,更新2
  • 实体框架6.1.2用于代码首次迁移

我使用Microsoft SQL Server数据库文件(SqlClient)配置创建了本地数据库.数据库创建成功,下面是从Sql获取的连接字符串

Data Source=(LocalDB)\v11.0;Initial Catalog=D:\USERS\USERNAME\DOCUMENTS\TestDatabase\testdb.MDF;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False
Run Code Online (Sandbox Code Playgroud)

我在app.config中使用相同的连接字符串.我可以在Visual Studio中的SQL Server数据库资源管理器中查看数据库对象.但是当在Nuget包管理器控制台中运行update-database命令时,我收到以下错误:

建立与SQL Server的连接时发生与网络相关或特定于实例的错误.服务器未找到或无法访问.验证实例名称是否正确,以及SQL Server是否配置为允许远程连接.(提供程序:SQL网络接口,错误:26 - 查找指定的服务器/实例时出错)

use*_*855 62

当我将"启动项目"从另一个模块更改为包含对解决方案中所有其他项目的引用的模块时,我遇到了类似的问题并修复了它.右键单击模块>>单击"设置为启动项目"

  • 为什么?它有效,但为什么?!当然,"默认项目"下拉就是这样 - wtf ...*叹气* (9认同)
  • 这仍然发生在VS2015中.这个答案也在那里解决了.(几个小时后浪费了) (3认同)

Mik*_*ikk 8

迭戈的回答是正确的.

当项目中没有连接字符串标记为启动项目时,会发生此问题.然后EF尝试连接到某个默认数据库引擎以执行更新.在我的情况下,它试图使用快递,并由于某种原因它无法连接.错误被抛出.

使用选项"-Verbose"运行"update-database".其中一行显示了使用哪个StartUp项目.检查此项目中的连接字符串,或将启动项目更改为具有正确连接字符串的项目.这解决了这个问题.