vs版本 2019,鏈接資料庫使用Navicat,資料庫MySql
abp的官網:https://aspnetboilerplate.com/,我們去Download這里下載一個模板,需要選好Target Version、輸入專案名字,我這里使用abp的mvc版本、專案名為AbpLearn下載一份
當前下載下來是5.6版本

解壓后

abp的sln在aspnet-core檔案夾下
打開檔案夾,雙擊打開sln,第一次加載的時候可能有點慢,請耐心等待nuget包自動加載完畢

AbpLearn.Application:應用層,主要包括定義和前臺進行互動的介面層,呼叫領域層中對應的介面,默認包括:驗證、配置、多租戶、角色、用戶、Session的一些操作,是整個Web API對外部提供呼叫的核心介面
AbpLearn.Core:領域層,對現實業務進行抽象,通過呼叫ORM層的提供的介面來對當前的User、Role、Tenant等一系列的管理操作,并對外提供統一的Manager介面,從而供應用層進行相關的操作,另外還提供了諸如驗證、配置、Feature、本地化等等一些列基礎介面,
AbpLearn.EntityFrameworkCore:ORM層,該層顧名思義是使用EntityFrameworkCore來和SQL Server資料庫進行互動的核心邏輯,包括一些常規的各種CRUD操作,以及通過Model First模式創建資料庫,為資料庫提供種子資料等一系列操作,
AbpLearn.Migrator:提供基于控制臺的資料庫遷移工具
AbpLearn.Web.Core:這個部分主要是另外一種WebAPI的訪問方式,和應用層這種直接的映射的方式不同,在當前專案中為了更好地體現REST 風格的API ,我們會在我們的類中繼承自AbpController這個基類,然后在當前的Controller類中通過[Route("api/[controller]/[action]")]這種方式來進行映射關系,這種風格更加符合REST的風格要求,在后面實際的專案中也會盡可能的采用這種方式,
AbpLearn.Web.Host:Swagger UI 集成Web API檔案工具
AbpLearn.Web.Mvc:標準的Asp.Net Core MVC 專案,完整的前后端實作,這一部分將在后續進行一系列的分析和解讀,
參考https://www.cnblogs.com/seekdream/p/9249568.html
abp默認使用EF作為orm,想要添加資料庫的表,需要先添加資料庫和專案中的連接字串,然后用update-database來生成,先不糾結update-database,按照流程來,在資料庫服務器上添加一個空庫,比如abplearn,
接下來就是修改資料庫鏈接字串了,
全域搜索“ConnectionStrings”,

找到有類似
"Default": "Server=localhost; Database=AbpLearnDb; Trusted_Connection=True;"
的地方,將ConnectionStrings的Server修改正確(資料庫鏈接字串怎么寫請自行百度)
我這里選用mysql作為資料庫
鏈接字串為: "Default": "server=192.168.149.28;port=3306;database=abplearn;user=root;password=testpassword;CharSet=utf8;"
資料庫鏈接字串設定好
如果是mysql,需要將*.EntityFrameworkCore中原本的sqlserver這個nuget包卸載
然后搜索添加Pomelo.EntityFrameworkCore.MySql包,再將*.EntityFrameworkCore專案/EntityFrameworkCore/AbpLearnDbContextConfigurer.cs中的builder.UseSqlServer修改為builder.UseMySql
將Migrations下面的檔案全部洗掉掉,將*.EntityFrameworkCore設定為啟動專案,然后在vs的頭部找到 視圖/其他視窗/程式包管理控制臺,打開這個控制臺大概出出現下圖

默認專案最好也設定為*.EntityFrameworkCore,在PM>后依次執行
Add-Migration [name] //這個name隨便命名即可
如我執行Add-Migration newinit后,在Migrations檔案夾下生成了

其中20200608140416_newinit(檔案名是根據生成時間的,下劃線前面會不同)檔案大概是這樣(如果用到的是mysql,但是生成的newinit檔案中是SqlServer:ValueGenerationStrategy和SqlServerValueGenerationStrategy,則需要手動批量替換下為MySql:ValueGenerationStrategy和MySqlValueGenerationStrategy)

然后在PM執行
Update-Database //如果資料庫鏈接字串都正確,將會在資料庫中生成很多表

各個表的定義和欄位意思請查看https://blog.csdn.net/mzl87/article/details/105256180/ ,或查看博客園防丟鏈接https://www.cnblogs.com/wangpengzong/diary/2020/06/09/13081234.html
此時,資料庫中沒有資料,我們運行一下專案,專案將執行*.EntityFrameworkCore專案/EntityFrameworkCore/Seed/SeedHelper.cs的SeedHostDb方法,生成默認的Host和一個默認的租戶Default,并將對應Roles(角色)、Users(用戶)、Permissions(權限)及其他表資料
但是此時,在瀏覽器中的樣式會出現問題,這個是因為我們沒有對abp的js和css檔案進行初始化,初始化的地方在libman.json,右擊libman.json,點擊“還原客戶端庫”后等待較長時間,vs將會從網上對參考的js和css下載下來放到對應檔案夾下
還原成功后,再去瀏覽下mvc專案,現在就可以看到完整版的abp了

明天開始分析并開始做從資料庫加載的動態選單、動態權限
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/17143.html
標籤:.NET Core
上一篇:.Net Core WebAPI + Axios +Vue 實作下載與下載進度條
下一篇:使用vs,c#,asp.net,
