ABP.NetCore V3.x版本连接MySql

1、之前我下载的是最新的ABP ASP.NetCore V5.x版本的ABP框架,连接MySql的时候要安装pomelo.entityframeworkcore.mysql和pomelo.entityframeworkcore.mysql.design,发现没法装,因为版本号不匹配
2、然后下载V3.x版本的,这个时候就可以安装了,这俩包都安装到AbpFrameworkCore3.EntityFrameworkCore这个项目里。
3、修改AbpFrameworkCore3.EntityFrameworkCore》EntityFrameworkCore》AbpFrameworkCore3DbContextConfigurer.cs》给他改成UseMySql

public static class AbpFrameworkCore3DbContextConfigurer
    {
        public static void Configure(DbContextOptionsBuilder<AbpFrameworkCore3DbContext> builder, string connectionString)
        {
            //builder.UseSqlServer(connectionString);
            builder.UseMySql(connectionString);
        }

        public static void Configure(DbContextOptionsBuilder<AbpFrameworkCore3DbContext> builder, DbConnection connection)
        {
            //builder.UseSqlServer(connection);
            builder.UseMySql(connection);
        }
    }

4、修改appSettings.json连接字符串
"Default": "Server=localhost; Database=AbpFrameworkCore3Db;charset=utf8;uid=root;pwd=123456;"
5、现在已经可以连接MySql了,但是要把AbpFrameworkCore3.EntityFrameworkCore》Migrations下面的所有文件全部删除,重新Add-Migration,然后执行Update-Database
6、执行Update-Database的时候可能会报错:Specified key was too long; max key length is 767 bytes,
原因是Mysql的索引长度限制导致
我的办法是把那些超长的索引都注释掉了,因为几乎用不到,
用到唯一索引的时候,在程序中进行唯一判断就行了;
对于启用innodb_large_prefix选项,我也没弄成功,我用的是Mysql5.6
参考文章:
连接mysql:https://www.cnblogs.com/topguntopgun/p/12081572.html
索引超长:
https://www.jianshu.com/p/b8d01de45959
https://blog.csdn.net/chenjianhuideyueding/article/details/88426021

原文地址:https://www.cnblogs.com/xsj1989/p/14445905.html