在这里看了大神的关于ABP入门系列的切换MySQL数据的文章(https://www.cnblogs.com/sheng-jie/p/7878422.html)。自己实践了一下。把结果记录一下。
从实际的步骤开始。
原来使用的是MSSQLServer数据库,现在切换到MySQL数据。使用的项目是自己做的一个ABP的项目代码,如果想尝试可以下载前面大神文章里的示例代码。
1、安装MySql.Data.Entity
在VS2017中,选中“解决方案”-》右键-》管理解决方案的NuGet程序包。。。如图1所示。
图1 选择管理解决方案的NuGet程序包
然后打开如图2所示的界面。
图2
单击图2中的2所在的行的MySql Data.Entity,进入如图3所示的界面。
图3
在图3中的右边选择,安装MySql.Data.Entity到以”.Web"和“.EntityFramework”结尾的项目中去,版本我这边原来的.EntityFramework是6.2.0的,第一次安装了6.10.8的Mysql.Data.Entity,没有迁移成功。后来又卸载重新选择了6.9.12版的才能迁移成功。所以大神说的注意版本号,一定要注意,如果后面迁移不成功,可以回退到这一步试试其他版本,也许就成功了。
2、修改“.EntityFramework”结尾的项目Migrations文件夹下的Configuration.cs类,在构造函数中添加
SetSqlGenerator("MySql.Data.MySqlClient", new MySql.Data.Entity.MySqlMigrationSqlGenerator());
代码所在位置,如图4所示。
图4
添加如下图5所示的代码:
图5
2、安装MySql Concector/Net
下载MySql为.Net平台提供的Connector安装就好了,
安装地址:Download Connector/Net。记住要选对对应的版本:如图6所示。
图6
2、设置连接字符串
在.web结尾的项目中,找到web.config,如图7所示。
打开,切换链接字符串。为
<add name="Default" connectionString="server=localhost;port=3306;database=XWFinanciaWaring;uid=root;password=*****" providerName="MySql.Data.MySqlClient" />
如图8所示。
图8
3、重新添加迁移
如果你的Migrations文件夹下有很多以日期开头(比如:20171122022_)的迁移文件,全部删掉他们!
然后Tools-->Nuget Package Manage--> Package Manage Console:输入Add-Migration "Abp_MoveTo_Mysql"
执行:
(工具->NuGet包管理器->程序包管理控制台)
图9
在控制台里选择包,然后再输入命令,如图10所示。
图10
如果看到如图10所示黄色的字,说明迁移成功了。然后就可以生成数据库了。如图10所示的最后一行,执行
Update-Database -Verbose
命令。命令执行完成,数据生成,项目即可运行了。