使用MySQL

ABP踩坑记录-目录

起因

因为我自用的服务器只是腾讯云1核1G的学生机,不方便装SQL Server,所以转而MySQL。

这里使用的MySQL版本号为 8.0。

解决方案

  1. 删除Qincai.EntityFrameCore项目中现有的针对SQL Server的迁移文件,即Migrations文件夹。

  2. Qincai.EntityFrameCore项目,添加Pomelo.EntityFrameworkCore.MySqlNuGet引用,并删除对Microsoft.EntityFrameworkCore.SqlServer的引用。

    Orcale官方也有提供MySql.Data.EntityFrameworkCore,但在之前我使用的时候(18年10月)还存在一些Bug,不知道现在有没有修复。如果有知道的同学,可以告知我一下。

  3. Qincai.Web.Host项目中的appsettings.json中修改连接字符串。

    例如这里,是我在本地由Docker启动的MySQL。

  4. 找到Qincai.EntityFrameCore项目下的QincaiDbContextConfigurer.cs文件,修改两处注释的地方。

    using System.Data.Common;
    using Microsoft.EntityFrameworkCore; namespace Qincai.EntityFrameworkCore
    {
    public static class QincaiDbContextConfigurer
    {
    public static void Configure(DbContextOptionsBuilder<QincaiDbContext> builder, string connectionString)
    {
    //builder.UseSqlServer(connectionString);
    builder.UseMySql(connectionString);
    } public static void Configure(DbContextOptionsBuilder<QincaiDbContext> builder, DbConnection connection)
    {
    //builder.UseSqlServer(connection);
    builder.UseMySql(connection);
    }
    }
    }
  5. 如下图添加Migration。

    这里需要注意的是,默认项目必须修改为Qincai.EntityFrameworkCore项目,并且你解决方案的启动项目需要设置为Qincai.Web.Host项目。

  6. 然后,就正常Update-Database完事了。

经历

最开始,要换数据库嘛,先查了下官网这篇流程,然后其实就差不多了,过程很简单。

而在这过程中,可能大家会看到类似这样的提示。

就如同其字面意思,在新版的SDK中已经包含了这些工具。如果觉得看得不爽,在对应的.csproj文件中找到类似下方的代码,删除即可。

<ItemGroup>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />
</ItemGroup>

ABP框架入门踩坑-使用MySQL的更多相关文章

  1. ABP框架入门踩坑-配置数据库表前缀

    配置数据库表前缀 ABP踩坑记录-目录 本篇其实和ABP关系并不大,主要是EF Core的一些应用-.-. 起因 支持数据库表前缀应该是很多应用中比较常见的功能,而在ABP中并没直接提供这一功能,所以 ...

  2. ABP框架入门踩坑-添加实体

    添加实体 ABP踩坑记录-目录 这里我以问答模块为例,记录一下我在创建实体类过程中碰到的一些坑. 审计属性 具体什么是审计属性我这里就不再介绍了,大家可以参考官方文档. 这里我是通过继承定义好的基类来 ...

  3. ABP框架入门踩坑-配置User Secrets

    配置User Secrets ABP踩坑记录-目录 起因 因为以往习惯在User Secrets中保存连接字符串之类信息,但当我把连接字符串移到secrets.json中后,却发现在迁移过程中会报如下 ...

  4. 我的微信小程序入门踩坑之旅

    前言 更好的阅读体验请:我的微信小程序入门踩坑之旅 小程序出来也有一段日子了,刚出来时也留意了一下.不过赶上生病,加上公司里也有别的事,主要是自己犯懒,就一直没做.这星期一,赶紧趁着这股热乎劲,也不是 ...

  5. Go ORM框架 - GORM 踩坑指南

    今天聊聊目前业界使用比较多的 ORM 框架:GORM.GORM 相关的文档原作者已经写得非常的详细,具体可以看这里,这一篇主要做一些 GORM 使用过程中关键功能的介绍,GORM 约定的一些配置信息说 ...

  6. 小程序框架MpVue踩坑日记(一)

    小程序也做了几个小功能模块了,总觉得需要总结一下,踩坑什么的还是得记录一下啊. 好吧,其实是为了方便回顾 首先,说到小程序框架,大家都知道wepy,不过,我是没用过 美团开发团队到mpvue到是个实在 ...

  7. 踩坑录-mysql不允许远程连接(错误码:1130) Host'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server“

    每次搭建mysql环境都会遇见同样的问题,在此分享一下踩坑笔录. 一.问题描述 安装成功后,本地直接链接远程mysql,默认为不允许远程访问,则客户端提示1130 - Host'xxx.xxx.xxx ...

  8. ABP框架入门

    技术要求 在开始使用 ABP 框架之前,您需要在计算机上安装一些工具. IDE/编辑器 本书假设您使用的是Visual Studio 2022(支持 .NET 6.0 的 v10.0)或更高版本.如果 ...

  9. 基于ASP.NET MVC的ABP框架入门学习教程

    为什么使用ABP 我们近几年陆续开发了一些Web应用和桌面应用,需求或简单或复杂,实现或优雅或丑陋.一个基本的事实是:我们只是积累了一些经验或提高了对,NET的熟悉程度. 随着软件开发经验的不断增加, ...

随机推荐

  1. day6:vcp考试

    Q101. Refer to the Exhibit.Which tab shows the Hardware Acceleration support status?A. DevicesB. Pro ...

  2. [leetcode]174. Dungeon Game地牢游戏

    The demons had captured the princess (P) and imprisoned her in the bottom-right corner of a dungeon. ...

  3. nginx中图片无法显示

    如果没有配置虚拟主机,则修改nginx.conf. 如果已创建单独虚拟主机,则在vhost下找到指定的主机配置文件, 如:www.xxx.com.conf location ~ .*\.(gif|jp ...

  4. vc到vs2015消息函数

    afx_msg LRESULT OnMyIconNotify(WPARAM wParam,LPARAM lParam); vc6 可以是void  vs2015不可以 ON_MESSAGE(MYWM_ ...

  5. Zookeeper 系列(三)Zookeeper API

    Zookeeper 系列(三)Zookeeper API 本节首先介绍 Zookeeper 的 Shell 命令,再对 Java 操作 Zookeeper 的三种方式进行讲解,本节先介绍 Zookee ...

  6. 2017年UX设计流行的六大趋势

    UX设计在接下来的2017年会有怎样的发展趋势呢?让我们一起回顾去年用户体验设计领域中的变化,来展望新一年用户体验设计的发展趋势吧. 1. 原型制作的爆炸性增长   随着用户体验设计师和用户界面设计师 ...

  7. sql删除重复记录

    DELETE E FROM t E where E.id> ( SELECT MIN(X.id) FROM t X WHERE X.name = E.name );

  8. springmvc cfx 整合

    1.先看一下目录列表,本人用的是eclipse 2.pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xm ...

  9. QQ使用技巧

    1.改变真实地理位置 大家知道,现在很多QQ都是显示IP和地理位置的版本,这样一来,自己的位置就暴露了.其实想隐藏自己的位置也简单,只要用代理服务器就是了.不要把它看成很复杂的东西,建议去下载&quo ...

  10. HTML5/CSS3基础

    1. HTML 1.1 什么是HTML HTML是用来制作网页的标记语言 HTML是Hypertext Markup Language的英文缩写,即超文本标记语言 HTML语言是一种标记语言,不需要编 ...