基于 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"])); });
- 配置种子数据
注意:种子数据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逐个删除最新的迁移文件)
- 参考:
- https://docs.microsoft.com/zh-cn/ef/core/managing-schemas/migrations/?tabs=dotnet-core-cli
- https://docs.microsoft.com/zh-cn/ef/core/cli/dotnet
编写接口获取数据库数据
- 编写仓储服务层
- 编写接口
- 注册对应服务
- 请求接口