ABP .Net Core Entity Framework遷移使用MySql數據庫


一、遷移說明

ABP模板項目Entity Framework Core默認使用的是Sql Server,也很容易將數據庫遷移到MySQL,步驟如下。

二、遷移MySQL步驟

1、 下載項目

請到 http://aspnetboilerplate.com/Templates 下載一個新的項目,選擇ASP.NET Core 2.x標簽,Target Framework:選中.Net Core就可以了。

2、 移除默認SQL Server相關包

在EntityFrameworkCore項目下移除包Microsoft.EntityFrameworkCore.SqlServerMicrosoft.EntityFrameworkCore.Design

 

3、  添加MySql程序包

 添加程序包Pomelo.EntityFrameworkCore.MySqlPomelo.EntityFrameworkCore.MySql.Design

 

4、  修改源代碼

修改DbContextConfigurer

public static class AbpBasicDbContextConfigurer
{
        public static void Configure(DbContextOptionsBuilder<AbpBasicDbContext> builder, string connectionString)
        {
            //builder.UseSqlServer(connectionString);
            builder.UseMySql(connectionString);
        }

        public static void Configure(DbContextOptionsBuilder<AbpBasicDbContext> builder, DbConnection connection)
        {
            //builder.UseSqlServer(connection);
            builder.UseMySql(connection);
        }
}

 

5、  修改數據庫鏈接字符串

在web項目配置文件appsettings.json

"ConnectionStrings": {
    //"Default": "Server=localhost; Database=AbpBasicDb; Trusted_Connection=True;"
    "Default": "Server=localhost; port=3306; Database=AbpBasicDb; uid=root; pwd=****; Convert Zero Datetime=True"
}

 

6、  數據遷移

重新生成遷移文件

在下載啟動模板的時候,如果你選擇了包含 Module Zero。這里會有一些遷移文件會包含在你的項目中,但是這些文件是為Sql Server遷移使用的。請打開 .EntityFramework 項目中的Migrations文件夾,然后刪除這些遷移文件。遷移文件是以時間戳開始的。遷移文件的名字像這樣:201506210746108_AbpZero_Initial。

在刪除所有的遷移文件后,選擇你的 .Web 項目為開始項目,打開VS的包管理控制台,並在包管理控制台中選擇 .EntityFramework 項目作為默認項目。然后在控制台中執行下面命令:

Add-Migration "AbpZero_Initial"

在ABP后面版本會報錯:

Your startup project 'ABP.Web.Host' doesn't reference Microsoft.EntityFrameworkCore.Design. This package is required for the Entity Framework Core Tools to work. Ensure your startup project is correct, install the package, and try again.

只需要在Web.Host項目安裝對應版本的nuget包 Microsoft.EntityFrameworkCore.Tools,然后重新運行命令:Add-Migration "AbpZero_Initial" 即可

現在你可以使用下面命令來創建數據庫:

Update-Database

所有的事情都已完成,檢查 MySQL數據庫已生產成功

 

7、  完成MySQL遷移后運行瀏覽成功

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM