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
}
});
@gjsduarte,你想我的答案吗? –