簡體   English   中英

自動映射:從單個源值填充的多個目標值

[英]Automapper: multiple destination values populated from single source value

我的DTO(目的地)有一堆布爾值。

例如:

HasThisOption
HasThatOption
HasSomeOtherOption

通過在模型對象(源)的一個字段上進行一些計算來填充這些值。 這個計算有點貴,因此我不想對DTO上的每個字段進行相同的計算,我只想運行一次計算。

簡單的解決方案是從我的控制器中調用一個函數..即.. PopulateFields(source,dest)

但是我不希望在我的映射器配置中為每個目標字段調用Ignore ..因為它們中有大約40個......而且它看起來很混亂,這樣做真的沒有任何意義。

在這種情況下,人們通常會做些什么?

在定義源和目標類型之間的映射時,可以使用AfterMap

Mapper.CreateMap<Source, Dest>().AfterMap((source, dest) =>
{
    // do your custom computations and assignments here
});

如果源類型中不存在布爾字段,則在標准映射期間它們將被忽略,並且在目標中具有其默認值。 AfterMap方法允許您更改它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM