如果不为null,则自动转换从十进制转换为bool

时间:2016-08-17 17:37:33

标签: c# automapper-4

我正在尝试将bool值转换为decimal i automapper。它工作正常,如果我不检查空值。但我想检查空值,如果值为null,让值为null我目的地转换为十进制.Below是我绑的颂但我得到一个错误

  cfg.CreateMap<sourcemodel, destinatiomodel>()    
     .ForMember(dest =>  dest.WorkhoursPerWeek != null ? 
                Convert.ToDecimal(dest.WorkhoursPerWeek) : null, 
                opts => opts.MapFrom(src => src.cstu_WorkHoursPerWeek));

1 个答案:

答案 0 :(得分:0)

你的代码没有意义(主要是因为它无效)。如果您需要先检查source属性,我建议您使用AfterMap()

cfg.CreateMap<sourcemodel, destinatiomodel>()    
  .AfterMap((src, dest) =>  
    {
      dest = dest.WorkhoursPerWeek != null 
      ? Convert.ToDecimal(dest.WorkhoursPerWeek) 
      : src.cstu_WorkHoursPerWeek
    });

(或者这可能不起作用,如果没有,请使用BeforeMap()进行映射,然后使用Ignore()属性。

相关问题