ASP.NET Core使用EF Core连接MySQL数据库完整指南(2026最新版)
2026-04-22 22 0
在现代Web开发中,ASP.NET Core + Entity Framework Core + MySQL 的组合越来越常见。本文将从环境准备到完整代码配置,手把手教你如何在ASP.NET Core中使用EF Core连接MySQL数据库。
EF Core连接MySQL的原理
EF Core本身是一个ORM框架,它并不直接操作数据库,而是通过“数据库提供程序(Provider)”实现对不同数据库的支持。对于MySQL,最常用的提供程序是:
- Pomelo.EntityFrameworkCore.MySql(推荐)
- MySql.Data.EntityFrameworkCore(官方)
其中 Pomelo 是目前社区最活跃、兼容性最好的方案 。
安装必要依赖
在你的ASP.NET Core项目中,执行以下命令安装依赖:
dotnet add package Pomelo.EntityFrameworkCore.MySql
dotnet add package Microsoft.EntityFrameworkCore.Design
该驱动基于 MySqlConnector 实现底层连接能力 。
配置数据库连接字符串
在 appsettings.json 中添加连接字符串:
{
"ConnectionStrings": {
"DefaultConnection": "Server=127.0.0.1;Port=3306;Database=testdb;User=root;Password=123456;"
}
}
MySQL连接字符串通常包含 Server、User、Password 和 Database 等字段 。
创建DbContext
新建一个数据上下文类:
using Microsoft.EntityFrameworkCore;
public class AppDbContext : DbContext
{
public AppDbContext(DbContextOptions<AppDbContext> options)
: base(options)
{
}
public DbSet<User> Users { get; set; }
}
实体类示例:
public class User
{
public int Id { get; set; }
public string Name { get; set; }
}
在Program.cs中注册MySQL
在 .NET 6+ 中(Program.cs):
using Microsoft.EntityFrameworkCore;
var builder = WebApplication.CreateBuilder(args);
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");
builder.Services.AddDbContext<AppDbContext>(options =>
options.UseMySql(connectionString, ServerVersion.AutoDetect(connectionString)));
var app = builder.Build();
app.Run();
这里的 UseMySql 方法用于指定数据库类型,并自动检测服务器版本。
执行迁移(Migration)
EF Core支持Code First方式自动创建数据库表:
dotnet ef migrations add InitialCreate
dotnet ef database update
执行后,EF Core会自动在MySQL中创建表结构 。
简单数据操作示例
在控制器中注入DbContext:
public class UserController : Controller
{
private readonly AppDbContext _context;
public UserController(AppDbContext context)
{
_context = context;
}
public IActionResult Index()
{
var users = _context.Users.ToList();
return View(users);
}
}
EF Core会自动将LINQ转换为SQL语句执行 。
常见问题与优化建议
1. 连接失败
- 检查MySQL服务是否启动
- 确认端口(默认3306)开放
2. 字符编码问题
建议在连接字符串中加:Charset=utf8mb4;。
3. 性能优化
- 使用异步方法(ToListAsync)
- 合理使用索引
- 避免N+1查询
总结
整体流程可以总结为:安装驱动 → 配置连接 → 注册DbContext → 迁移数据库 → 编写业务代码。对于中大型项目,这种组合不仅开发效率高,而且易于维护,是当前.NET生态中非常主流的技术方案。