建立解決方案管理器
開啟vs>建立新專案》選擇asp.net core web 應用程式》選擇web api。
專案名稱依據個人習慣,命名為nm.reservation.api。
建立domain專案
在建立好的解決方案管理其中選擇新增,類庫.net core。
命名為nm.reservation.domain
新增依賴項
選擇管理nuget程式包,新增volo.abp.ddd.domain。
建立module
建立類檔案,類檔名稱根據abp vnext框架的預設約定可以命名為reservationdomainmodule。整合abp vnext基類abpmodule,並在類上新增特性abpddddomainmodule。
usingvolo.abp.domain;
using
volo.abp.modularity;
namespace
nm.reservation.domain
}
更具專案介紹中的業務需求,我們首先建立預約資訊管理類:
usingsystem;
using
system.collections.generic;
using
system.collections.objectmodel;
using
system.diagnostics.codeanalysis;
using
system.linq;
using
volo.abp;
using
volo.abp.domain.entities.auditing;
namespace
nm.reservation.domain
//////
開放天數
/// public
intopendays
//////
是否包含當天
/// public
bool
includeday
//////
附記
/// public
string
scriptpost
//////
預約條件集合
/// public icollectionreservationconditions
public
reservationmanagerinfo(
guid id, [notnull]
string name, [notnull]int opendays, string scriptpost = null
)
public
virtual
void setopendays(int
days)
public
void setincludeday(bool
include)
public
virtual
void
addreservationcondition(reservationcondition reservation)
public
virtual
void
removereservationcondition(reservationcondition reservation)
public
virtual reservationcondition findreservationcondition(string
itemname)
}}
預約資訊管理類整合了abp聚合跟基類,從我們的業務上可以看到,預約管理資訊與預約條件形成了聚合的業務邏輯,預約條件資訊依賴於預約管理資訊,與預約管理資訊同生共死。
屬性的訪問修飾符設定為私有與internal,這樣可以更好的管理預約資訊並且保證資料的安全性。為預約條件資訊設定三個方法,分別實現新增、刪除、查詢。為開放天數、是否包含當天設定方法,可以在後續的應用中修改這兩個資訊。
2 abp 領域層建立實體
領域層 learningmpaabp.core專案 基礎服務層 entityframework對應的專案 1 在領域層新建tasks資料夾 在資料夾下新建task類 但是注意 task類必須要繼承entity類,entity類又實現了ientity介面 和 ientity介面 其中 ientity裡...
ABP入門系列(2) 領域層建立實體
abp入門系列目錄 學習abp框架之實操演練 這一節我們主要和領域層打交道。首先我們要對abp的體系結構以及從模板建立的解決方案進行一一對應。網上有 生成器去簡化我們這一步的任務,但是不建議初學者去使用。領域層就是業務層,是乙個專案的核心,所有業務規則都應該在領域層實現。實體 entity 實體代表...
ABP領域層 實體
參考陽光銘睿的教程 實體類 在abp中,實體類繼承自 entity 類public class person entity person類的父類中有 id屬性,id是該實體的主鍵,預設型別是 int,如果想給id定義其他型別,如下,也可以設定為 string,guid public class pe...