建立領域層

2022-04-04 00:09:49 字數 2065 閱讀 5527

建立解決方案管理器

開啟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。

using

volo.abp.domain;

using

volo.abp.modularity;

namespace

nm.reservation.domain

}

更具專案介紹中的業務需求,我們首先建立預約資訊管理類:

using

system;

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...