0

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

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

1 回答 1

0

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

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

(或者这可能不起作用,如果没有,请使用 BeforeMap() 映射之前和 Ignore() 属性)。

于 2016-08-17T17:53:57.670 回答