重要:在人们指出常见原因之前,连接字符串在本地计算机上的一个项目中工作,而不是在连接到同一本地实例的同一本地计算机上的另一个项目SAME数据库。
我有一个奇怪的问题。我有2个EF核心项目。我在第一个项目中的连接字符串工作正常。我可以键入" dotnet ef database update",它会将我的迁移推送到LOCAL数据库。我将以下字符串完全粘贴到我的第二个项目中,然后抛出错误:
建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供者:命名管道提供程序,错误:40 - 无法打开与SQL Server的连接)
这是我的连接字符串:
Server=.;Database=RAMSAPPDB;Integrated Security=False;Persist Security Info=True;MultipleActiveResultSets=True;
我想不出为什么在我试图添加到SAME数据库的其他项目中使用此连接字符串会引发此错误的一个原因。在推送第二个项目中的迁移之前,我尝试删除RAMSAPPDB中的所有表,但它不起作用。
如果我注释掉" ConnectionString",我会收到错误
connectionString不能为空
所以我知道它使用了appsettings.json
中的连接字符串。
对于可能原因的任何想法将不胜感激。谢谢。
答案 0 :(得分:3)
我解决了。很久以前我写过这篇文章就忘记了
bind
我在运行“dotnet ef database update”命令时使用了我的DbContext类中的。我以为它正在使用我的appsettings.json中的内容。
答案 1 :(得分:1)
我的connectionString被复制并硬编码到我的Entity Framework脚手架DbContext中。这就是为什么我的应用程序没有在appsettings.json中使用connectionString。