2016-08-17 49 views
-1

我想从bool值转换为十进制i automapper。它工作正常,如果我不检查空值。但我想检查空值,如果值为空,让值为空我的目的地其他转换为decimal.Below是颂我绑,但我得到一个错误。自动映射器从十进制转换为布尔如果不为空

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

只需将您的dest.WorkhoursPerWeek设为可空或十进制? – Fals

+0

请显示您要映射的属性。 “我想从布尔转换为小数”听起来很奇怪。 – krillgar

+0

krillagar,你可以看看代码 – user2465036

回答

0

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

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

(或者,这可能无法正常工作,如果没有,用BeforeMap()之前,地图和忽略()的属性)。

+0

我收到一个错误@Erik – user2465036

+0

我强烈建议你与其他技术人员沟通(任何地方不只是这样),你对你所面临的问题的描述性更强。例如,我能做些什么来处理'我收到错误'?我没有例外,也没有代码;你没有向我提供任何信息来帮助你。 –

+0

埃里克什么试过 – user2465036