前言:

  大家好,今天给大家带来ABP第二篇的分享,在写这篇分享的时候非常的困难,因为发现ABP的框架越是深入、难度也就越大,而且深刻感觉到自己领域驱动开发知识的欠缺,前段时间买了两本有关于领域驱动知识的数据,一本是领域驱动之父Eric Evans写的《领域驱动设计》、一本是Vaughn Vernon写的《实现领域驱动设计》,就目前而言,看了并没有几张,再次默默的自我检讨3分钟,下面回归正文:

  在ABP系统框架中,后台代码分为了几层,以下是层级的注释:

  1. MyABPProject.Application:应用服务层,包含各个应用的逻辑
  2. MyABPProject.Core:项目的核心层,在领域驱动分层中,应该属于领域层
  3. MyABPProject.EntityFrameworkCore:基于EntityFrameworkCore的封装,连接数据库,属于仓储基础设施层
  4. MyABPProject.Migrator:数据库迁移工具
  5. MyABPProject.Web.Core:项目的展现层,封装展现层所用到的工具
  6. MyABPProject.Web.Host:项目的动态API接口以及Swagger

  今天主要是写下数据库切换的问题,一开始,项目刚刚下载下来的时候,默认使用的是SqlServer数据库,按照上一篇的文章写的那样,数据库还原->运行项目,顺风顺水可以将项目运行起来,因为现在项目的变化,需要更改数据库,将由MySql代替SqlServer,故此分为了以下的几个步骤:

  1. 首先删除MyABPProject.EntityFrameworkCore项目下关于SqlServer的一些引用类库,需要删除的类库如下:

    • Microsoft.EntityFrameworkCore.SqlServer
    • Microsoft.EntityFrameworkCore.Design
  2. 添加MySql的引用类库,MySql需引用类库如下:
    • Pomelo.EntityFrameworkCore.MySql.Design
    • Pomelo.EntityFrameworkCore.MySql
  3. 注释MyABPProject.Web.Host和MyABPProject.Migrator项目中的“appsettings.json”文件下SqlServer数据库字符串,新增MySql数据库字符串
  4. 在整个解决方案中将字符串“SqlServerValueGenerationStrategy”替换成“MySqlValueGenerationStrategy”
  5. 在整个解决方案中将字符串“UseSqlServer”替换成“UseMySql”
  6. 删除MyABPProject.EntityFrameworkCore项目中“Migrations”这个文件夹下所有迁移文件
  7. 通过程序包管理控制台根据命令“Add-Migration "XXX"”重新生成迁移文件
  8. 生成成功后,根据命令“Update-Database”还原MySql数据库
  9. 重启启动项目,即可完成!

  为什么选择“Pomelo.EntityFrameworkCore.MySql”:

  MySql/MariaDB 推荐使用Pomelo EF Core组件,官方引用文件目前可能存在bug,Pomelo EF Core同样是微软官方所推荐的。

ABP框架(asp.net core 2.X+Vue)模板项目学习之路(二)--切换MySql数据库的更多相关文章

  1. 中小研发团队架构实践之生产环境诊断工具WinDbg 三分钟学会.NET微服务之Polly 使用.Net Core+IView+Vue集成上传图片功能 Fiddler原理~知多少? ABP框架(asp.net core 2.X+Vue)模板项目学习之路(一) C#程序中设置全局代理(Global Proxy) WCF 4.0 使用说明 如何在IIS上发布,并能正常访问

    中小研发团队架构实践之生产环境诊断工具WinDbg 生产环境偶尔会出现一些异常问题,WinDbg或GDB是解决此类问题的利器.调试工具WinDbg如同医生的听诊器,是系统生病时做问题诊断的逆向分析工具 ...

  2. ABP框架(asp.net core 2.X+Vue)模板项目学习之路(一)

    前言: 第一次接触ABP的项目是在2018年6月份,但是当时没有深入具体的研究,而今天因为工作的需要,需要学习.了解这个框架,在时隔半年之后,今天重新下载了这个项目,虽然在园子里有很多前辈们写的这类的 ...

  3. 运行ABP(asp.net core 3.X+Vue)提示'OFFSET' 附近有语法错误。 在 FETCH 语句中选项 NEXT 的用法无效。

    创建ASP.NET Boilerplate,还原数据库和启动客户端 这里就略过,具体参考 ABP框架(asp.net core 2.X+Vue)模板项目学习之路(一) ASP.NET Boilerpl ...

  4. 5. abp集成asp.net core

    一.前言 参照前篇<4. abp中的asp.net core模块剖析>,首先放张图,这也是asp.net core框架上MVC模块的扩展点 二.abp的mvc对象 AbpAspNetCor ...

  5. 52abp框架asp.net core & Angular快速开发实战视频教程

    课程标题 52abp框架asp.net core & Angular全栈开发实战视频课程 课程简介 从零开始学 52ABP企业开发框架,企业项目是如何开发和技术选型,代码如何管理,团队协同开发 ...

  6. ASP.NET Core Identity 框架 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core Identity 框架 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core Identity 框架 前面我们使用了 N 多个章节, ...

  7. Asp.Net Core 轻松学系列-3项目目录和文件作用介绍

    目录 前言 结语 前言     上一章介绍了 Asp.Net Core 的前世今生,并创建了一个控制台项目编译并运行成功,本章的内容介绍 .NETCore 的各种常用命令.Asp.Net Core M ...

  8. ASP.NET Core WebAPI 开发-新建WebAPI项目

    ASP.NET Core WebAPI 开发-新建WebAPI项目, ASP.NET Core 1.0 RC2 即将发布,我们现在来学习一下 ASP.NET Core WebAPI开发. 网上已经有泄 ...

  9. ASP.NET Core WebAPI 开发-新建WebAPI项目 转

    转 http://www.cnblogs.com/linezero/p/5497472.html ASP.NET Core WebAPI 开发-新建WebAPI项目   ASP.NET Core We ...

随机推荐

  1. 现代 PHP 新特性 —— 生成器入门(转)

    原文链接:blog.phpzendo.com PHP 在 5.5 版本中引入了「生成器(Generator)」特性,不过这个特性并没有引起人们的注意.在官方的 从 PHP 5.4.x 迁移到 PHP ...

  2. MariaDB主从复制,redis发布订阅,持久化,以及主从同步

      一. MariaDB主从复制 mysql基本操作 1 连接数据库 mysql -u root -p -h 127.0.0.1 mysql -u root -p -h 192.168.12.60 2 ...

  3. 配置Spring MVC - 2019

    未完 软件环境:Eclipse-EE 1. 创建Maven Project 2. pom.xml - [更新日期19/03/31] <dependencies> <dependenc ...

  4. git pull更新错误解决办法

    Your local changes to the following files would be overwritten by mergeerror: Your local changes to ...

  5. C# 结构与类的区别

    一.定义方式 定义结构: struct PointStruct //默认的访问权限是 public { public int X { get; set; } public int Y { get; s ...

  6. Hadoop 2.7.4 HDFS+YRAN HA增加datanode和nodemanager

    当前集群 主机名称 IP地址 角色 统一安装目录 统一安装用户 sht-sgmhadoopnn-01 172.16.101.55 namenode,resourcemanager /usr/local ...

  7. Java容器——List接口

    1. 定义 List是Collection的子接口,元素有序并且可以重复,表示线性表. 2. 常用实现类 ArrayList:它为元素提供了下标,可以看作长度可变的数组,为顺序线性表. LinkedL ...

  8. 8、TypeScript-解构赋值

    1.数组的解构赋值 2.对象的解构赋值 注意:在浏览器环境中,windows本身有一个成员name,所以要重新,语法为  属性名:重命名 3.函数的解构赋值

  9. Java获取本地IP地址和主机名

    方式一:通过java.net.InetAddress类获取 public void test1() { try { InetAddress addr = InetAddress.getLocalHos ...

  10. js 快速生成数组的方法

    //实现方法一:循环赋值var arr1 = new Array(100);for(var i=0;i<arr1.length;i++){ arr1[i] = i;}console.log(ar ...