基于 MySQL 有两个 EF Core 数据库提供程序 Pomelo.EntityFrameworkCore.MySql 和 MySql.EntityFrameworkCore,建议使用 Pomelo.EntityFrameworkCore.MySql。参考:​​https://docs.microsoft.com/zh-cn/ef/core/providers/?tabs=dotnet-core-cli​

mysql 配置

  • ASP.Net Core 项目NuGet 添加 Pomelo.EntityFrameworkCore.MySql
  • 在 appsettings.json 配置数据库连接字符串
    "DbContext": { "ConnectionString": "server=localhost; database = xxxDB; uid=root; pwd=123456;" }
  • 在Startup中注册DbContext服务并配置MySql连接
    services.AddDbContext<AppDbContext>(option => { option.UseMySql( Configuration["DbContext:ConnectionString"], ServerVersion.AutoDetect(Configuration["DbContext:ConnectionString"])); });
  • 配置种子数据
    ASP.Net Core 使用 EF Core 启用 MySQL 数据库_数据
    注意:种子数据json文件切记为utf-8编码格式,否则生成的数据会中文乱码。

使用 .NET Core CLI 进行数据迁移

  • 安装工具dotnet ef:dotnet tool install --global dotnet-ef
  • 向项目添加工具包Microsoft.EntityFrameworkCore.Tools 才能对项目进行数据库迁移工作:dotnet add package Microsoft.EntityFrameworkCore.Tools
  • 添加迁移:dotnet ef migrations add xxx
  • 执行迁移:dotnet ef database update xxx
  • 删除回滚迁移:dotnet ef database update xxx(回滚到对应版本,手动删除多余迁移文件或使用dotnet ef migrations remove逐个删除最新的迁移文件)
  • 参考:

编写接口获取数据库数据

  • 编写仓储服务层
    ASP.Net Core 使用 EF Core 启用 MySQL 数据库_数据_02
  • 编写接口
    ASP.Net Core 使用 EF Core 启用 MySQL 数据库_json_03
  • 注册对应服务
    ASP.Net Core 使用 EF Core 启用 MySQL 数据库_数据_04
  • 请求接口
    ASP.Net Core 使用 EF Core 启用 MySQL 数据库_mysql_05