ABP官方文件翻譯 2 7 物件到物件的對映

2022-03-08 16:18:07 字數 2214 閱讀 4514

物件到物件的對映

mapto擴充套件方法

單元測試

介紹

對映乙個相似的物件到另乙個物件是常有的事情。因為兩個物件(類)有相似/相同的屬性,所以兩個相似物件之間相互對映是乏味、重複的。考慮乙個經典的應用服務方法如下:

public

class

public

void

createuser(createuserinput input)

;_userrepository.insert(user);

}}

createuserinput是乙個簡單的dto,user是乙個簡單的實體。我們根據給定的input手動建立了乙個user實體。在實際的應用中,使用者實體會有許多的屬性,手動建立它變得乏味且容易出錯的。當我們想給user和createuserinput新增新屬性時,需要改變對映**。

public

class

public

void

createuser(createuserinput input)

}

map是乙個簡單的方法,獲取源物件並使用宣告的泛型引數(本例中為user)建立乙個新目標物件。map方法有乙個過載,可以對映乙個物件到乙個已存在的物件。假定我們已經有了乙個user實體,想使用乙個物件更新它的屬性:

public

void

updateuser(updateuserinput input)

安裝

[dependson(typeof

public

class

mymodule : abpmodule

了解關於對映的更多詳情。abp簡化了對映並且將它模組化了。

大多數時候,只想直接(慣例的)對映類。在這種情況下,可以使用automap、automapfrom和automapto特性。例如,在上面的例項中,我們想對映createuserinput類到user類,我們可以按如下所示使用automapto特性。

[automapto(

typeof

(user))]

public

class

createuserinput

public

string surname

public

string emailaddress

public

string password

}

automap特性雙向對映兩個類。但是在這個例項中,我們僅僅需要從createuserinput類對映到user類,所以我們使用automapto。

假定我們對映時想忽略password,使用者用email屬性來標示email位址。我們可以按如下所示定義對映:

[dependson(typeof

public

class

mymodule : abpmodule

); }

}

mapto擴充套件方法

public

class

public

void

createuser(createuserinput input)

public

void

updateuser(updateuserinput input)

}

單元測試

我們希望使測試之間是獨立的。為了達到這個目的,我們應該按如下規則設計我們的工程:

localizablestring->string

返回主目錄

ABP官方文件翻譯 3 2 值物件

值物件 介紹 展現領域描述性層面且沒有概念性身份的物件稱之為值物件。eric evans 和實體相反,實體有身份標示 id 值物件沒有身份標示。如果兩個實體的身份標示是不同的,那麼就認為他們是不同的物件 實體,即使他們的所有屬性都是一樣的。考慮兩個不同的人有相同的名字 姓氏和年齡,但是他們是不同的人...

ABP官方文件翻譯 3 5 規約

規約 建立規範類 使用倉儲規約 組合規約 討論介紹 規約模式是一種特別的軟體設計模式,通過使用布林邏輯將業務規則鏈結起來重新調配業務規則。維基百科 尤其是,它通常用來為實體或其他業務物件定義可復用的過濾器。示例 在這個部分,我們將看到規約模式的必要性。本部分是通用的,和abp的實現沒有必然的關係。假...

ABP文件翻譯 值物件

本人是abp初學者,在看英文文件和 tkb至簡 的abp框架理論研究總結 典藏版 時,發現大神 tkb至簡中少了對value objects的翻譯,看文件是新的,大神沒時間把,小弟給補充上。用於描述領域的某個方面而本身沒有概念標識的物件稱為 a value object eric evans 對於實...