簡體   English   中英

Automapper條件集合映射

[英]Automapper Conditional Collection Mapping

有誰知道一種方法(或解決方法)來按地圖條件條件映射源的屬性?

這里的目的是基於Web服務操作參數有條件地映射子對象的集合。 如:

Parent GetParent(bool includeChildren);

到目前為止,我發現的唯一可行的解​​決方案是創建一個包裝類以添加一個布爾屬性,例如:

public class ParentMapper
{
    Parent Parent;
    public bool IncludeChildren {get;set;}
}

或直接在模型源類上添加IncludeChildren屬性,我真的不喜歡,因為目的混合。

完美的解決方案如下所示:

TDestination Map<TSource, TDestination>(TSource source, bool includeCollections);

但是我認為通過有效的解決方案不會給我帶來好運。

任何幫助,將不勝感激...

當前沒有內置功能可讓您實現這一目標。 您可以執行以下操作:

var destinations = Mapper.Map<List<Parent>, List<ParentDto>>(
    sources.Where(source => source.Child !=null)
);

另一種方法是:

config.CreateMap<Parent, ParentDto>()
            .AfterMap((source, dest) =>
            {
                 if (source.Child !=null)
                 {
                     //do some stuff here
                 }
            });

暫無
暫無

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

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