前言:

  大家好,今天给大家带来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. java 获取微信公众号code为空

    失败的原因是没将回调方法encode转换 /** * URL编码(utf-8) * * @param source * @return */ public static String urlEncod ...

  2. jdbc、jpa、spring data jpa、hibernate、mybatis之间的关系及区别

    基础概念 jdbc(Java DataBase Connectivity)是java连接数据库操作的原生接口.JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型.作为A ...

  3. Js 语言中 变量提升问题

    变量提升: 提升变量的声明. 函数声明式: 像这种形式: function foo() {}: 会发生变量提升. 函数表达式: var fn=function fn(){}: 不会发生变量提升.var ...

  4. 纯手工编写的PE可执行程序

    [文章标题]: 纯手工编写的PE可执行程序[文章作者]: Kinney[下载地址]: 自己搜索下载[使用工具]: C32[操作平台]: win 7[作者声明]: 只是感兴趣,没有其他目的.失误之处敬请 ...

  5. [luogu P3953] [noip2017 d1t3] 逛公园

    [luogu P3953] [noip2017 d1t3] 逛公园 题目描述 策策同学特别喜欢逛公园.公园可以看成一张$N$个点$M$条边构成的有向图,且没有 自环和重边.其中1号点是公园的入口,$N ...

  6. (转)用库函数stdarg.h实现函数参数的可变

    原文地址:https://blog.csdn.net/jinkui2008/article/details/1967055 #define _INTSIZEOF(n)   ( (sizeof(n) + ...

  7. 简述 JVM 垃圾回收算法

    经典垃圾回收 标记-清除(Mark-Sweep) 研发园开了家新餐厅,餐厅老板在考虑如何回收餐盘时首先使用了最简单的方式,那就是服务员在顾客用餐的过程中,不定时的观察餐厅,针对用完餐的顾客记录他们的位 ...

  8. 在Linux和Windows之间的远程控制的实现

    主要开发工作用Linux,邮件和文档等主要在Windows,两者之间经常需要传输数据,两台主机都必须同时运行着. 但是,通常来说,它们需要同时准备两套显示器.鼠标和键盘,既占地方又不够方便. 远程控制 ...

  9. mybatis一简单one2one关系xml配置

    user类 <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC &qu ...

  10. Java基本概述

    1.java语言的特点 1.面向对象:基本概念(类,对象) 三大特征:封装.继承.多态 2.健壮性 3.跨平台:通过Java语言的编写的应用程序在不同的系统平台上都能可以进行运行. 2.什么是JDK. ...