仅当目标对象在Automapper中没有值时如何映射

问题描述 投票:0回答:1

我有一个映射器,我需要执行条件映射,条件是,仅当目标属性值为null时,才将值从源映射到目标。我该怎么做?

.ForMember(o => o.EmployeeId, opt => opt.MapFrom(u => u.EmployeeId))

仅在尚无值的情况下,我才想为其分配值。

c# .net automapper
1个回答
0
投票

应该为您提供帮助。

CreateMap<YOURMODEL,YOURMODEL2>()
    .ForMember(dest => dest.EmployeeId, opt => {
        opt.PreCondition(src => src.EmployeeId != null);
        opt.MapFrom(src => src.EmployeeId);

其他方式

CreateMap<SourceClass, TargetClass>()
    .ForMember(d => d.EmployeeId, o => o.MapFrom(s => s.EmployeeId))
    .ForAllMembers(o => o.Condition((src, dest, value) => value != null));
© www.soinside.com 2019 - 2024. All rights reserved.