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

ASP.NET Core MVC连接字符串无效,执行dotnet ef数据库更新命令报错

解决"keyword not supported: 'server.'" EF Core数据库更新错误

嘿,这个错误我之前帮不少开发者排查过,基本都是连接字符串和EF Core配置不匹配,或者字符串本身有小语法问题导致的,给你列几个最常见的修复方向:

1. 先检查连接字符串里的关键字拼写

错误提示里的server.(带点)是关键——你大概率在appsettings.json里把连接字符串的Server关键字写成了server.(末尾多了个点)。比如这种错误写法:

"ConnectionStrings": {
  "DefaultConnection": "server.=localhost;Database=YourProjectDb;Trusted_Connection=True;"
}

把server.改成Server或者Data Source(SQL Server里这俩是等价的)就能解决这个问题。

2. 确认数据库提供者和连接字符串类型匹配

EF Core会根据你注册的数据库提供者来解析连接字符串,要是类型不匹配肯定会报错:

  • 如果你用的是SQL Server,连接字符串用Server、Database这类关键字,但你要是误注册了Sqlite提供者,它根本不认Server这个关键字;
  • 反过来,Sqlite的连接字符串是文件路径,要是你给SQL Server提供者传Sqlite的字符串也会出问题。

去检查你的Program.cs(或者老项目的Startup.cs)里的服务注册代码:

// ❌ 错误示例:注册了Sqlite但用了SQL Server的连接字符串
builder.Services.AddDbContext<YourDbContext>(options =>
    options.UseSqlite(builder.Configuration.GetConnectionString("DefaultConnection")));

// ✅ 正确示例:SQL Server要用UseSqlServer
builder.Services.AddDbContext<YourDbContext>(options =>
    options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));

确保UseSqlServer/UseSqlite/UseNpgsql这些方法和你的连接字符串类型完全对应。

3. 排查连接字符串里的多余符号

有时候可能是关键字后面不小心加了空格或者点号,比如Server. = .;这种写法,EF Core解析的时候会把Server.当成一个未知关键字,自然就报错了。仔细核对连接字符串里的每一个关键字,去掉多余的符号就行。

最后验证步骤

  1. 保存修改后的配置文件和代码;
  2. 先执行dotnet clean清理项目;
  3. 再用dotnet build重新生成;
  4. 最后运行dotnet ef database update试试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:03:22