基于目标值的自动映射副本

时间:2012-10-17 14:21:18

标签: automapper automapper-2

我只是在目标值为null时才尝试复制源值。我使用以下地图

 Mapper.CreateMap<BM.AudioSetting, BM.AudioSetting>()
        .ForMember(dest => dest.MSOffsetInherited, opt =>
                                                       {
                                                           opt.Condition(src => src.DestinationValue == null);
                                                           opt.MapFrom(src => src.MSOffset);
                                                       });

在我的情况下,我正在检查以确保映射前目标值为null。问题是无论目标值如何,都会一直在进行复制。

我这样做错了吗?

由于 ISAM

2 个答案:

答案 0 :(得分:0)

您的代码应该可以正常运行。可能你期望src.DestinationValue成为目标对象的属性。如果是这样,自定义type converter应该可以帮助您实现所需的行为。

This post可以帮助您创建自定义类型转换器。

答案 1 :(得分:0)

我注意到您的源和目标类型是相同的。当目标值为null时,您实际上是在尝试克隆对象吗?如果是这样,那么根据此问题的评论,AutoMapper可能不是合适的解决方案:Copy object to object (with Automapper ?)

相关问题