使用Entity Framework连接SQL Server时遇网络连接错误求助
问题分析与解决方案
你的核心问题是Entity Framework配置的数据库驱动与实际使用的数据库不匹配:
- 你调用的
UseSqlServer()是专门用于连接微软SQL Server数据库的方法,但你实际使用的是phpMyAdmin管理的MySQL数据库,这直接导致了连接失败错误。
解决步骤
1. 安装MySQL对应的EF Core驱动包
通过NuGet包管理器安装适配的MySQL EF Core组件:
- 包管理器控制台命令:
Install-Package Microsoft.EntityFrameworkCore.MySql - .NET CLI命令:
dotnet add package Microsoft.EntityFrameworkCore.MySql
注意:请确保安装的包版本与你项目中EF Core的主版本一致(比如EF Core 6对应MySql包6.x版本)。
2. 修改DbContext的数据库配置代码
将原本的UseSqlServer()替换为UseMySql(),并调整MySQL格式的连接字符串:
public DbSet<User> Users { get; set; } public DbSet<Ranked> Rankeds { get; set; } public DbSet<Round> Rounds { get; set; } public DbSet<Game> Games { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { // 替换为MySQL连接字符串,参数对应你学校数据库的实际信息 optionsBuilder.UseMySql("Server=myServer;Database=myDB;Uid=你的数据库用户名;Pwd=你的数据库密码;SslMode=Required;", new MySqlServerVersion(new Version(8, 0, 23))); // 替换为你学校MySQL的实际版本号 }
连接字符串参数说明:
Server:学校数据库的地址(IP或域名)Uid:数据库登录用户名(你之前写的Uid=myDB大概率是错误的,需改为你使用了一年的正确用户名)SslMode:根据学校数据库的SSL要求调整,可选Required/None等
3. 重新执行迁移命令
修改完成后,重新运行:
update-database
额外排查点
- 确认连接字符串中所有参数(地址、用户名、密码、数据库名)与你之前使用的查询工具完全一致
- 确保项目网络环境可正常访问学校数据库(比如是否需要连接校园网或VPN,你之前能正常操作,这点大概率没问题)
内容的提问来源于stack exchange,提问作者Venoz
相关产品推荐
相关产品推荐

