2016-08-17 59 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