Volo.Abp.EntityFrameworkCore.MySQL 使用
- 创建新项目
打开 https://cn.abp.io/templates
,任意选择一个项目类型,然后创建项目,我这里创建了一个web api
解压项目,还原nuget,项目目录如下:
首先我们来查看下整个项目关于数据库方面的引用:
从图中我们可以看到identityserverhost
和mkm.bookstore.host
这两个站点有引用,identityserverhost
是用户中心api,和mkm.bookstore.host
是我们的业务中心api,这里我们以mkm.bookstore.host
的处理为例来讲解下如何把原有的sqlserver替换为mysql。
1、在以mkm.bookstore.host
添加volo.abp.entityframeworkcore.mysql
的引用
2、修改数据库default
的连接字符串为mysql的数据库连接字符串
1 //sqlserver 2 //"default" "server=localhost;database=bookstorehost;trusted_connection=true;multipleactiveresultsets=true", 3 4 //mysql 5 "default": "server=192.168.2.15; port=3306; database=bookstorehost; user=root; password=123456;", 6 7 // 缓存数据库 8 "sqlservercache": "server=localhost;database=bookstorecache;trusted_connection=true;multipleactiveresultsets=true"
3、demoappmodule.cs
3.1 、替换引用
添加volo.abp.entityframeworkcore.mysql
的引用
注释volo.abp.entityframeworkcore.sqlserver
的引用
3.2、替换module
1 typeof(abpentityframeworkcoresqlservermodule)替换为typeof(abpentityframeworkcoremysqlmodule) 2 3 [dependson( 4 typeof(abpautofacmodule), 5 typeof(bookstoreapplicationmodule), 6 typeof(bookstoreentityframeworkcoremodule), 7 typeof(bookstorehttpapimodule), 8 typeof(abppermissionmanagemententityframeworkcoremodule), 9 typeof(abpsettingmanagemententityframeworkcoremodule), 10 typeof(abpauditloggingentityframeworkcoremodule), 11 //typeof(abpentityframeworkcoresqlservermodule) 12 typeof(abpentityframeworkcoremysqlmodule) 13 )]
3.3、 usesqlserver
改为usemysql
1 configure<abpdbcontextoptions>(options => 2 { 3 //options.usesqlserver(); 4 options.usemysql(); 5 });
4、demoappdbcontextfactory.cs
public demoappdbcontext createdbcontext(string[] args) { var configuration = buildconfiguration(); //var builder = new dbcontextoptionsbuilder<demoappdbcontext>() // .usesqlserver(configuration.getconnectionstring("default")); var builder = new dbcontextoptionsbuilder<demoappdbcontext>() .usemysql(configuration.getconnectionstring("default")); return new demoappdbcontext(builder.options); }
5、迁移&&生成
5.1、删除默认迁移文件
删除migrations
目录以及文件,因为默认的是sqlserver的,我们这里是需要生产mysql的。
5.2、 生成新的迁移文件
mkm.bookstore.host
设置为启动项目,打开程序包管理控制台并且默认项目选择为mkm.bookstore.host
执行迁移命令
pm> add-migration mysql_init
5.3、更新数据库
pm> update-database -verbose
下一篇: 正则表达式匹配任意字符(包括换行符)
推荐阅读