ABP預設模板修改預設資料庫型別並初始化資料庫資料

夏日旋风發表於2024-08-14

我這裡以SQLite資料庫為例,其他資料庫類似。

1.下載模板

https://aspnetboilerplate.com/

根據自己的需求選擇版本和前端框架並填寫專案名稱,點選“Create my project!”即可下載一個ABP標準模板專案。

解壓下載好的壓縮包,找到目錄:aspnet-core ,接下來就可以用VS開啟.sln 解決方案了。

專案主要是分為下面幾個專案分層

Application(應用層):應用層提供一些應用服務(Application Services)方法供展現層呼叫。一個應用服務方法接收一個DTO(資料傳輸物件)作為輸入引數,使用這個輸入引數執行特定的領域層操作,並根據需要可返回另一個DTO。

Core(領域層就是業務層):是一個專案的核心,所有業務規則都應該在領域層實現。這個專案裡面,除了定義所需的領域實體類外,其實可以定義我們自己的自定義的倉儲物件(類似DAL/IDAL),以及定義自己的業務邏輯層(類似BLL/IBLL),以及基於AutoMapper對映規則等內容。

EntityFrameworkCore(實體框架核心層): 這個專案不需要修改太多內容,只需要在DbContext裡面加入對應領域物件的倉儲物件即可。

Migrator(資料遷移層):輔助建立的控制檯程式專案,如果基於DB First,我們可以利用它來建立我們專案的初始化資料庫。

Web.Core(Web或者Web API的核心層) :提供了對身份登陸驗證的基礎處理,沒有其他內容。

Web.Host (動態釋出Web API的核心內容):動態釋出Web API的核心內容,另外在Web API裡面整合了Swagger,使得我們可以方便對Web API的介面進行除錯。

Tests(單元測試) :提供了一些應用層物件的模擬測試,其中測試的資料庫使用的是Entity Framework 的記憶體資料庫,不影響實際資料庫內容。

因為ABP模板預設使用的時SQL Server資料庫配置,這裡我要替換成SQLite資料庫。

把專案 EntityFrameworkCore 裡面的 Microsoft.EntityFrameworkCore.SqlServer包刪掉,新增 Microsoft.EntityFrameworkCore.Sqlite包

接下來就要修改資料庫連結字串了,下面三個專案中的 appsettings.json 檔案中的資料庫配置都要改掉。

這裡根據自己的資料庫檔案路徑和名稱進行修改: "Data Source=D:\\資料庫相關檔案\\SQLite\\AbpDemo.db"

把 xxxxx.EntityFrameworkCore 這個專案設定為啟動項

接下來就要開始生成資料指令碼了: 工具 > NuGet包管理器 > 程式包管理器控制檯

在開啟的程式包管理器控制檯,預設專案,選中xxxxx.EntityFrameworkCore

在開始執行指令碼之前要先刪除 xxxxx.EntityFrameworkCore 專案下的Migrations資料夾,因為這裡面預設時SQL Server的指令碼,對我來說不適用,如果換其他資料庫也是一樣要刪除。

首先時生成指令碼命令:Add-Migration Init

透過控制檯可以檢視生成結果,並在 xxxxx.EntityFrameworkCore 專案的Migrations資料夾下檢視指令碼檔案。

可以看到指令碼檔案已經生成。

接下來就是要同步到資料庫了,另一個命令:Update-Database

透過控制檯檢視到同步結果

查詢一下資料庫,所有的表也都生成了!

但是這裡的表都是空的,接下來就要往裡面初始化資料了,將xxxx.Migrator專案設定為啟動項,然後F5啟動專案

專案啟動後會開啟一個控制檯視窗,這裡輸入 Y , 很快就執行結束了,然後可以去資料庫確認預設資料了。

這裡可以看到預設的使用者已經建立好了,可以去登陸試試了。 預設賬號: admin 預設密碼:123qwe

相關文章