欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Volo.Abp.EntityFrameworkCore.MySQL 使用

程序员文章站 2022-09-27 17:52:09
创建新项目 打开 https://cn.abp.io/Templates ,任意选择一个项目类型,然后创建项目,我这里创建了一个Web Api 解压项目,还原Nuget,项目目录如下: 首先我们来查看下整个项目关于数据库方面的引用: 从图中我们可以看到IdentityServerHost和MKM.B ......
  • 创建新项目

打开 https://cn.abp.io/templates ,任意选择一个项目类型,然后创建项目,我这里创建了一个web api

 

Volo.Abp.EntityFrameworkCore.MySQL 使用

 

解压项目,还原nuget,项目目录如下:

 

Volo.Abp.EntityFrameworkCore.MySQL 使用

 

首先我们来查看下整个项目关于数据库方面的引用:

 

Volo.Abp.EntityFrameworkCore.MySQL 使用

 

从图中我们可以看到identityserverhostmkm.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

Volo.Abp.EntityFrameworkCore.MySQL 使用

 

Volo.Abp.EntityFrameworkCore.MySQL 使用

 

5.3、更新数据库

pm> update-database -verbose

Volo.Abp.EntityFrameworkCore.MySQL 使用