ABP框架入門踩坑-使用MySQL

使用MySQL

ABP踩坑記錄-目錄html

原由

由於我自用的服務器只是騰訊雲1核1G的學生機,不方便裝SQL Server,因此轉而MySQL。mysql

這裏使用的MySQL版本號爲 8.0。sql

解決方案

  1. 刪除Qincai.EntityFrameCore項目中現有的針對SQL Server的遷移文件,即Migrations文件夾。
  2. Qincai.EntityFrameCore項目,添加Pomelo.EntityFrameworkCore.MySqlNuGet引用,並刪除對Microsoft.EntityFrameworkCore.SqlServer的引用。數據庫

    Orcale官方也有提供MySql.Data.EntityFrameworkCore,但在以前我使用的時候(18年10月)還存在一些Bug,不知道如今有沒有修復。若是有知道的同窗,能夠告知我一下。json

  3. Qincai.Web.Host項目中的appsettings.json中修改鏈接字符串。服務器

    修改鏈接字符串

    例如這裏,是我在本地由Docker啓動的MySQL。
  4. 找到Qincai.EntityFrameCore項目下的QincaiDbContextConfigurer.cs文件,修改兩處註釋的地方。app

    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。
    添加Migration工具

    這裏須要注意的是,默認項目必須修改成Qincai.EntityFrameworkCore項目,而且你解決方案的啓動項目須要設置爲Qincai.Web.Host項目。
  6. 而後,就正常Update-Database完事了。ui

經歷

最開始,要換數據庫嘛,先查了下官網這篇流程,而後其實就差很少了,過程很簡單。spa

而在這過程當中,可能你們會看到相似這樣的提示。

錯誤提示

就如同其字面意思,在新版的SDK中已經包含了這些工具。若是以爲看得不爽,在對應的.csproj文件中找到相似下方的代碼,刪除便可。

<ItemGroup>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />
</ItemGroup>
相關文章
相關標籤/搜索