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


    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工具连接到数据库验证是否生成对应数据库。

  • 相关阅读:
    如何在腾讯云上安装Cloud Foundry
    Chrome浏览器扩展程序的本地备份
    如何在Kubernetes里创建一个Nginx service
    如何在Kubernetes里创建一个Nginx应用
    在Mac里给Terminal终端自定义颜色
    linux sed命令详解
    跟我一起写Makefile--- 变量(嵌套变量+追加变量+overrid+多行变量+环境变量+目标变量+模式变量)
    makefile详解 嵌套执行make,定义命令包
    makefile学习笔记(多目录嵌套调用、变量使用)
    Makefile所有内嵌函数
  • 原文地址:https://www.cnblogs.com/owenyan/p/9583361.html
Copyright © 2020-2023  润新知