如何解决使用Code First EF 6.4.4的第一个应用程序:SQL Server连接错误
我刚刚开始学习EF(不是核心),并且正在创建我的第一个代码优先的应用程序。这是一个C#控制台应用程序,我要做的就是添加迁移,然后简单地创建示例数据库(与我的解决方案同名)。当我尝试运行Update-Database
时,出现此错误:
建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称正确,并且已将SQL Server配置为允许远程连接。 (提供者:SQL网络接口,错误:50-发生本地数据库运行时错误。无法创建自动实例。有关错误详细信息,请参见Windows应用程序事件日志。)
我搜索和实施但仍无法解决的步骤是
- 我在SQL Server配置管理器中启用了TCP / IP端口
- 确保所有服务都在运行(浏览器,SQL Server)
- 在Windows Defender防火墙中添加了例外
- 选中复选框以允许“远程连接”
我的连接字符串是:
<add name="ConsoleDBContext"
connectionString="Data Source=(LocalDb)\SQLEXPRESS;Initial Catalog=CodeFirst_Demo;Integrated Security=SSPI;"
providerName="System.Data.SqlClient" />
还尝试删除“ localDB”,但无济于事。
使用Package Manager控制台在C#代码中遵循的步骤是:
- 安装软件包EntityFramework
- 启用迁移
- 添加迁移CreatePost
- 更新数据库
在此方面的任何帮助,我将万分感谢。
解决方法
连接字符串中的服务器/实例名称很奇怪...。
任何一种,您的计算机上都安装了“完整” SQL Server Express-Windows启动并在后台作为服务运行时启动的SQL Server Express-在这种情况下,您应该使用{ {1}}或.\SQLEXPRESS
作为您的服务器/实例名称:
(local)\SQLEXPRESS
或者,如果您安装了SQL Server Express LocalDB (随Visual Studio一起安装),则应使用<add name="ConsoleDBContext"
connectionString="Data Source=(local)\SQLEXPRESS;Initial Catalog=CodeFirst_Demo;Integrated Security=SSPI;"
providerName="System.Data.SqlClient" />
作为服务器/实例名称:
(localdb)\MSSQLLocalDB
您现在使用的组合显然是不正确的-尝试这两种方法之一,看看是否可行。
,您的程序无法访问您的服务器。如果您在同一台计算机上运行数据库,则您的连接字符串应类似于:
Data Source=.;Initial Catalog=<DB-Name>;User Id=<username>; Password=<pwd>;
数据源是服务器的名称,即“。”。表示localhost或127.0.0.1 初始目录是您的数据库名称,有时您可以使用master。 并且您不需要在同一台计算机上配置TCP / IP,除非您在另一台计算机上托管数据库,否则数据源应该是db-machinname \ db-instance-name,如果实例名称是默认值,则同样名称,然后只需指定计算机名称即可。
,谢谢大家!通过沿着“ Update-Database”命令显式输入启动项目名称(在我的情况下为“ CodeFirst_Demo”),解决了我的问题。如下所示:
更新数据库-StartupProjectName CodeFirst_Demo
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。