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

如何修复Microsoft.Data.SqlClient.SqlException (0x80131904)无效列名错误

问题根因

该报错由线上数据库的表结构与当前代码的字段要求不匹配导致:你使用的是ASP.NET Core Identity身份框架,报错中提到的NormalizedEmail、ConcurrencyStamp、LockoutEnd、NormalizedUserName属于Identity内置AspNetUsers用户表的默认字段,UserType是你自行扩展的自定义用户字段。本地数据库已经通过EF迁移操作完成了结构同步,而线上数据库的AspNetUsers表缺少上述字段,触发SQL查询异常。

修复步骤
  • 首先确认项目中线上环境的数据库连接字符串配置正确,没有错误指向其他未同步的旧库
  • 其次完成EF迁移到线上库的同步操作,可根据你的线上环境权限二选一:
    • 如果你本地可以直接连通线上数据库,将本地配置文件中的连接字符串临时替换为线上库连接信息,在包管理器控制台执行Update-Database,即可将本地所有迁移记录直接同步到线上库
    • 如果你不能直接连接线上数据库,在本地包管理器控制台执行Script-Migration生成全量SQL迁移脚本,将脚本在线上数据库执行即可完成结构同步
  • 操作完成后手动校验线上库的AspNetUsers表,确认报错提到的6个字段均已存在,字段类型与本地库完全一致
注意事项

如果线上库之前已经存在旧版本的Identity相关表,不要直接删除原有表重建,提前导出用户数据备份后再做结构同步,避免数据丢失
如果你是后续才新增的UserType自定义字段,需要确认该字段的添加逻辑已经包含在提交的迁移文件中,避免漏同步自定义字段

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 11:18:02