不同的映射取决于封闭类
本文关键字:取决于 映射 | 更新日期: 2023-09-27 18:19:05
假设我有一个SourceClass
:
public class SourceClass
{
IList<InnerClass> InnerCollection{get; set;}
// other properties...
}
和两个不同的目标类
public class DestinationClass1
{
IList<InnerClassDto> InnerCollection{get; set;}
// other properties...
}
public class DestinationClass2
{
IList<InnerClassDto> InnerCollection{get; set;}
// other properties...
}
最后我配置了我的映射器:
Mapper.Initialize(cfg =>
{
cfg.CreateMap<SourceClass, DestinationClass1>();
cfg.CreateMap<SourceClass, DestinationClass2>();
cfg.CreateMap<InnerClass, InnerClassDto>();
});
但是我需要根据"父"类在我的目标类中填充IList<InnerClassDto>
。特别是我需要为DestinationClass1
过滤一些元素,而为DestinationClass2
保留所有元素。
用Automapper实现这一点的正确方法是什么?这可能吗?
您可以在映射配置中指定过滤器:
Mapper.CreateMap<SourceClass, DestinationClass1>()
.ForMember(dest => dest.InnerCollection,
opt => opt.MapFrom(src => src.InnerCollection.Where(o => o.Value == src.CustomValue)));