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

ABP框架应用-MySQL数据库集成

程序员文章站 2022-05-18 12:09:32
1. 框架以外依赖包引入 1.1. Pomelo.EntityFrameworkCore.MySql 1.2. Pomelo.EntityFrameworkCore.MySql.Design 2. 冲突包的检查和排除(自己遇到的出问题的地方) 2.1. 排除-Mysql.Data.Entity,具体 ......

1.  框架以外依赖包引入

1.1.  pomelo.entityframeworkcore.mysql

1.2.  pomelo.entityframeworkcore.mysql.design

 2.  冲突包的检查和排除(自己遇到的出问题的地方)

2.1.  排除-mysql.data.entity,具体原因不详。

2.2.  排除-mysql.data.entityframeworkcore,efcore 报错,无法进行类型的强制转换,目前官方没有解决,所以使用pomelo来替代。

3.  在entityframeworkcore层修改dbcontextconfigurer文件中的数据库引用。

4.  在entityframeworkcore层修改dbcontext的onmodelcreating方法,添加映射最大值限制。

5.  修改migrator下的appsetting.json和web.host下的appsetting.json中的数据库连接配置

6.  在nuget程序包管理控制台执行生成迁移脚本命令。

7.  在nuget程序包管理控制台,执行ef数据库更新语句。

8.  用navicat工具连接到数据库验证是否生成对应数据库。

 

【说明】abp原始框架环境准备:

asp.net core 2.x

.net core (cross plateform)

vue 2.5.16

vuex 3.0.1

abp 3.8.1

yarn 1.9.4

 

1.  框架以外依赖包引入

1.1.  pomelo.entityframeworkcore.mysql

【说明】mysql基础支撑

 

1.2.  pomelo.entityframeworkcore.mysql.design

【说明】生成升级脚本的设计支撑,例如,mysql数据库字段类型到实体类型的映射关系。

 

 2.  冲突包的检查和排除(自己遇到的出问题的地方)

2.1.  排除-mysql.data.entity,具体原因不详。

2.2.  排除-mysql.data.entityframeworkcore,efcore 报错,无法进行类型的强制转换,目前官方没有解决,所以使用pomelo来替代。

3.  在entityframeworkcore层修改dbcontextconfigurer文件中的数据库引用。

【说明】修改前:

 public static void configure(dbcontextoptionsbuilder<courseradbcontext> builder, string connectionstring)

        {

            builder.usesqlserver(connectionstring);

        }

【说明】修改后:

 public static void configure(dbcontextoptionsbuilder<courseradbcontext> builder, string connectionstring)

        {

            builder.usemysql(connectionstring);

        }

【说明】注意:

如果引用的是usemysql,则说明,引用包为mysql.data.entityframeworkcore,生成迁移脚本的时候,仍然会报无法进行转换的错误。

4.  在entityframeworkcore层修改dbcontext的onmodelcreating方法,添加映射最大值限制。

【说明】modelbuilder.entity<applicationlanguagetext>().property(p => p.value).hasmaxlength(500);

没有验证过为什么这样做。

5.  修改migrator下的appsetting.json和web.host下的appsetting.json中的数据库连接配置

【说明】修改后的格式:

"default": "server=[mysql的连接地址]; port=[端口]; database=[数据库名称]; user id=[登录账户]; password=[登录密码];"

6.  在nuget程序包管理控制台执行生成迁移脚本命令。

【说明】执行:add-migration [迁移脚本名称]

执行成功后,将在 migrations中生成[迁移脚本名称]命名的脚本文件。

7.  在nuget程序包管理控制台,执行ef数据库更新语句。

【说明】执行 : update-database

8.  用navicat工具连接到数据库验证是否生成对应数据库。