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

ASP.Net Core 3.1+EF Core+MySQL迁移时遇CHARACTER语法错误

问题分析与解决方案

从错误日志能明显看出:你的EF Core正在使用Microsoft.Data.SqlClient(SQL Server专属驱动)执行SQL语句,但你实际要连接的是MySQL——SQL Server不支持CHARACTER SET utf8mb4这类MySQL独有的语法,这才是报错的核心原因。

解决步骤:

  • 安装MySQL的EF Core提供程序
    确保项目安装适配ASP.Net Core 3.1的MySQL EF Core驱动,推荐使用Pomelo的包:

    dotnet add package Pomelo.EntityFrameworkCore.MySql --version 3.2.7
    

    (版本3.2.7完美适配EF Core 3.1,同时兼容MySQL 8.0.x版本)

  • 修正DbContext配置
    在Startup.cs的ConfigureServices方法中,把原本SQL Server的配置替换为MySQL配置:

    services.AddDbContext<ApplicationDbContext>(options =>
        options.UseMySql(
            Configuration.GetConnectionString("DefaultConnection"),
            new MySqlServerVersion(new Version(8, 0, 31)) // 填写你的MySQL实际版本
        )
    );
    
  • 检查连接字符串格式
    确认appsettings.json里的连接字符串是MySQL格式,而非SQL Server:

    "ConnectionStrings": {
        "DefaultConnection": "server=localhost;database=你的数据库名;user=root;password=你的密码;charset=utf8mb4"
    }
    
  • 重新生成迁移文件
    之前的迁移文件是针对SQL Server生成的,需手动删除Migrations文件夹下的旧文件,再重新创建迁移并更新数据库:

    dotnet ef migrations add InitialIdentityMigration
    dotnet ef database update
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 20:50:26