ABP 开发向导 整合MySql数据库
整合MySql数据
适用于ASP.NET Core和Entity Framework Core的模板集成MySQL。
安装MySql的Entity Framework Core数据库驱动
有官方的MySQL EF Core Database Provider和Pomelo EF Core Database Provider for MySQL可供选择,建议安装Pomelo EF Core Database Provider for MySQL,官方驱动对core 2.1支持不够完善(索引文件名长度超过64及其他问题)。
在.EntityFrameworkCore项目中安装Pomelo.EntityFrameworkCore.MySql的NuGet包。
配置
配置DbContext
替换YourProjectNameDbContextConfigurer.cs文件的如下内容:
public static class MySqlDemoDbContextConfigurer{ public static void Configure(DbContextOptionsBuilder<MySqlDemoDbContext> builder, string connectionString) { builder.UseMySql(connectionString); } public static void Configure(DbContextOptionsBuilder<MySqlDemoDbContext> builder, DbConnection connection) { builder.UseMySql(connection); } }
配置链接字符串
必须修改.Web.Host项目appsetting.json中的连接字符串来使用MySql数据库。就好像这样:
"ConnectionStrings": { "Default": "server=127.0.0.1;uid=root;pwd=1234;database=mysqldemodb" }
重新生成数据库迁移文件
如果下载模版时选择了“包含登录、注册、用户、角色和租户管理页面”,在项目中会包含一些数据库迁移文件。这些文件是为Sql Server生成的。 删除.EntityFrameworkCore中Migrations目录下的所有数据库迁移文件(包括*ContextModelSnapshot)。迁移文件以时间戳开头命名。就如这样"201506210746108_AbpZero_Initial"。
删除所有数据库迁移文件后,选择.Host项目为启动项目,打开Visual Studio的包管理器命令行并选择.EntityFrameworkCore项目为默认项目。然后运行如下命令为MySql迁移数据.
Add-Migration AbpZero_Initial
现在就可以用如下命令建立数据库了
Update-Database
这样就完成了MySql数据库的整合。