Automapper条件集合映射

问题描述:

有谁知道在每个映射条件下条件映射源属性的方法(或解决方法)吗?Automapper条件集合映射

此处的目的是基于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 
       } 
      }); 
+0

@gjsduarte,你想我的答案吗? –