ABP框架入门踩坑-使用MySQL

使用MySQL

ABP踩坑记录-目录html

原由

由于我自用的服务器只是腾讯云1核1G的学生机,不方便装SQL Server,因此转而MySQL。数据库

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

解决方案

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

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

    Orcale官方也有提供MySql.Data.EntityFrameworkCore,但在以前我使用的时候(18年10月)还存在一些Bug,不知道如今有没有修复。若是有知道的同窗,能够告知我一下。工具

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

    修改链接字符串

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

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

    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。 添加Migrationxml

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

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

经历

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

而在这过程当中,可能你们会看到相似这样的提示。

错误提示

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

<ItemGroup>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />
</ItemGroup>
相关文章
相关标签/搜索