You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Code First下Update-Database连接Azure SQL遇Authentication关键字不支持问题

解决Azure SQL数据库EF Core迁移时的认证错误问题

我来帮你搞定这个困扰你的EF Core迁移错误!你遇到的两个问题其实都是SQL Server驱动版本和认证配置不匹配导致的,下面一步步给你解决:

问题根源拆解

  • 「Keyword not supported: 'authentication'」错误:你用的是旧版的System.Data.SqlClient驱动,这个驱动不支持Azure SQL提供的Authentication连接字符串关键字——而Azure门户生成的连接字符串是针对新版Microsoft.Data.SqlClient驱动的。
  • 「Cannot open server 'organisation.com' requested by the login」错误:移除Authentication后,旧驱动会把你用户ID里@organisation.com的后缀当成SQL Server实例名称,自然找不到这个不存在的服务器,导致登录失败。

具体解决方案

1. 升级/安装正确的SQL Server驱动

首先确保你的项目用的是新版驱动:

  • 打开NuGet包管理器,安装或更新Microsoft.EntityFrameworkCore.SqlServer包(它会自动引入依赖的Microsoft.Data.SqlClient)。
  • 或者直接安装Microsoft.Data.SqlClient包到你的项目中。

2. 使用原始连接字符串(无需转义)

Azure门户给的连接字符串本身是正确的,你不需要额外转义Authentication里的单引号——在C#的双引号字符串中,单引号是合法字符,不会被当成字符串结束符:

services.AddDbContext<PwttContext>(options => 
    options.UseSqlServer("Server=tcp:<serverName>.database.windows.net,1433;Initial Catalog=<databaseName>;Persist Security Info=False;User ID=<userId@organisation.com>;Password=<password>;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Authentication='Active Directory Password';"));

3. 备选方案:手动配置认证方式

如果还是遇到关键字不支持的问题,可以绕过连接字符串的关键字,直接在代码里指定认证方式:

services.AddDbContext<PwttContext>(options =>
{
    var connectionString = "Server=tcp:<serverName>.database.windows.net,1433;Initial Catalog=<databaseName>;Persist Security Info=False;User ID=<userId@organisation.com>;Password=<password>;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;";
    var sqlConnection = new Microsoft.Data.SqlClient.SqlConnection(connectionString);
    // 明确指定用Active Directory密码认证
    sqlConnection.Authentication = Microsoft.Data.SqlClient.SqlAuthenticationMethod.ActiveDirectoryPassword;
    options.UseSqlServer(sqlConnection);
});

4. 检查程序包管理器控制台环境

最后确认一下:

  • 控制台顶部的「默认项目」下拉菜单里选的是你的Web/API项目(不是类库项目)。
  • 所有NuGet包都已经还原成功(可以右键项目选「还原NuGet包」)。

做完这些再执行Update-Database,应该就能顺利连接Azure SQL并完成迁移了!

内容的提问来源于stack exchange,提问作者Ray

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:49:40