天天看點

Abp vNext項目搭建及切換成MySQL一、環境二、安裝步驟三、切換至MySQL四、運作系統五、參考文章

一、環境

  1. Microsoft Visual Studio Professional 2019:

    版本 16.7.3

  2. Abp :

    3.1

  3. dotnet資訊
C:\Users\xxx>dotnet --info
.NET Core SDK(反映任何 global.json):
Version:   3.1.402
Commit:    9b5de826fd

運作時環境:
OS Name:     Windows
OS Version:  10.0.19041
OS Platform: Windows
RID:         win10-x64
Base Path:   C:\Program Files\dotnet\sdk\3.1.402\

Host (useful for support):
 Version: 3.1.8
 Commit:  9c1330dedd

.NET Core SDKs installed:
 2.1.801 [C:\Program Files\dotnet\sdk]
 3.1.201 [C:\Program Files\dotnet\sdk]
 3.1.402 [C:\Program Files\dotnet\sdk]

           

二、安裝步驟

2.1.安裝ABP CLI

C:\Users\xxx>dotnet tool install -g Volo.Abp.Cli
已安裝工具“volo.abp.cli”。
           

很奇怪,提示已經安裝工具,不記得自己什麼時候安裝過。那就更新下:

C:\Users\xxx>dotnet tool update -g Volo.Abp.Cli
工具“volo.abp.cli”已成功從版本“2.7.0”更新到版本“3.1.2”。
           

從2.7.0更新到了3.1.2

2.2.建立項目

首先切換到準備建立項目的位置,假設是:E:\Projects\dotnet\abp>

C:\Users\xxx>e:
E:\>cd E:\Projects\dotnet
E:\Projects\dotnet>mkdir abp
E:\Projects\dotnet>cd abp
E:\Projects\dotnet\abp>
           

建立項目:

E:\Projects\dotnet\abp>abp new Sudo.AbpDemo
           

此時在“E:\Projects\dotnet\abp>”下生成了項目及解決方案。

Abp vNext項目搭建及切換成MySQL一、環境二、安裝步驟三、切換至MySQL四、運作系統五、參考文章

打開解決方案,發現src下共有10個項目(UI采用的MVC/Razor Pages模式)。

Abp vNext項目搭建及切換成MySQL一、環境二、安裝步驟三、切換至MySQL四、運作系統五、參考文章

三、切換至MySQL

abp CLI建構的項目預設使用了SqlServer資料庫。下面就介紹如何切換為使用MySql資料庫。

3.1.修改資料庫連接配接字元串

在Sudo.AbpDemo.Web項目中,打開其中“appsetting.json”檔案,修改其中連接配接字元串為MySql格式,例子如下:

"ConnectionStrings": {
  "Default": "server=localhost;port=3306;database=testdb;User ID=root;Password=123456;"
},
           

同時也将Sudo.AbpDemo.DbMigrator項目中“appsetting.json”檔案裡的資料庫連接配接字元串進行相應修改。

3.2.EntityFrameworkCore資料庫支援包替換

管理“Sudo.AbpDemo.EntityFrameworkCore”項目中Nuget程式包,解除安裝其中的“Volo.Abp.EntityFrameworkCore.SqlServer”包,并浏覽安裝“Volo.Abp.EntityFrameworkCore.MySQL”程式包。

Abp vNext項目搭建及切換成MySQL一、環境二、安裝步驟三、切換至MySQL四、運作系統五、參考文章

3.3.将代碼“UseSqlServer”替換為“UseMysql"

有兩部分(Ctrl+F查找UseSqlServer亦可)需要修改:

1.“Sudo.AbpDemo.EntityFrameworkCore”項目中的AbpDemoEntityFrameworkCoreModule.cs檔案

Configure<AbpDbContextOptions>(options =>
            {
                /* The main point to change your DBMS.
                 * See also AbpDemoMigrationsDbContextFactory for EF Core tooling. */
                options.UseSQLServer();
            });
           

修改為:

Configure<AbpDbContextOptions>(options =>
            {
                /* The main point to change your DBMS.
                 * See also AbpDemoMigrationsDbContextFactory for EF Core tooling. */
                options.UseMySQL();
            });
           

将依賴項目:

修改為:

2.“Sudo.AbpDemo.EntityFrameworkCore.DbMigrations”項目中的AbpDemoMigrationsDbContextFactory.cs檔案:

var builder = new DbContextOptionsBuilder<EyinzhangMigrationsDbContext>()
                .UseSqlServer(configuration.GetConnectionString("Default"));
           

修改為:

var builder = new DbContextOptionsBuilder<AbpDemoMigrationsDbContext>()
                .UseMySql(configuration.GetConnectionString("Default"));
           

3.4.重新生成遷移

Mysql配置的修改基本完成,項目編譯應該也不會有錯誤提示了。打開程式包管理控制台,将預設項目設定為“Sudo.AbpDemo.EntityFrameworkCore.DbMigrations”。

Abp vNext項目搭建及切換成MySQL一、環境二、安裝步驟三、切換至MySQL四、運作系統五、參考文章

3.4.1移除原有遷移

輸入Remove-Migration指令移除遷移。若執行成功,那麼在“Sudo.AbpDemo.EntityFrameworkCore.DbMigrations”項目的Migrations檔案夾下的原來檔案将被移除。

PM> Remove-Migration
Build started...
Build succeeded.
           

3.4.2添加遷移

PM>  Add-Migration
位于指令管道位置 1 的 cmdlet Add-Migration
請為以下參數提供值:
Name: init
Build started...
Build succeeded.
To undo this action, use Remove-Migration.
           

此時在Migrations檔案夾下生成了新的遷移檔案。

Abp vNext項目搭建及切換成MySQL一、環境二、安裝步驟三、切換至MySQL四、運作系統五、參考文章

3.4.3 執行遷移

3.4.3.1 運作

Sudo.AbpDemo.DbMigrator

項目

将“Sudo.AbpDemo.DbMigrator”項目設定為啟動項目,運作本控制台應用。顯示:

[22:22:20 INF] Started database migrations...
[22:22:20 INF] Migrating schema for host database...
[22:22:26 INF] Executing host database seed...
[22:22:32 INF] Successfully completed host database migrations.
[22:22:32 INF] Successfully completed database migrations.
           

如下圖:

Abp vNext項目搭建及切換成MySQL一、環境二、安裝步驟三、切換至MySQL四、運作系統五、參考文章

看看資料庫,已經在資料庫中生成了一堆表。

Abp vNext項目搭建及切換成MySQL一、環境二、安裝步驟三、切換至MySQL四、運作系統五、參考文章

3.4.3.2 執行

update-database

PM> update-database
Build started...
Build succeeded.
No migrations were applied. The database is already up to date.
Done.
           

說明之前已經執行成功。

3.4.3.3 二者差別

官方文檔對此有說明:

Abp vNext項目搭建及切換成MySQL一、環境二、安裝步驟三、切換至MySQL四、運作系統五、參考文章

四、運作系統

将“Sudo.AbpDemo.Web”設定為啟動項目并運作。如果按照之前的步驟,不出意外的話,就可以看到這個歡迎頁面了:

Abp vNext項目搭建及切換成MySQL一、環境二、安裝步驟三、切換至MySQL四、運作系統五、參考文章

點選【登入】按鈕就可以看到下面的登入界面。系統已經預設有一個名為

admin

的使用者,密碼是:

1q2w3E*

Abp vNext項目搭建及切換成MySQL一、環境二、安裝步驟三、切換至MySQL四、運作系統五、參考文章

五、參考文章

  1. Abp.io官方文檔——Getting-Started
  2. abp vNext 使用MySql資料庫配置說明