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

本文关键字:十进制 bool 转换 如果不 | 更新日期: 2023-09-27 18:02:52

我正在尝试从bool值转换为十进制I automapper。它工作得很好,如果我不检查空值,但我想检查空值,如果值为空,让值为空i目的地否则转换为十进制。下面是我绑定的代码,但是我得到了一个错误。

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

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

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

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

(或者这可能不起作用,如果不起作用,请使用BeforeMap()来映射before和Ignore()属性)