2012-10-17 26 views
2

我試圖僅在目標值爲空時複製源值。我正在使用下面的地圖基於目標值的自動映射器複製

Mapper.CreateMap<BM.AudioSetting, BM.AudioSetting>() 
     .ForMember(dest => dest.MSOffsetInherited, opt => 
                 { 
                  opt.Condition(src => src.DestinationValue == null); 
                  opt.MapFrom(src => src.MSOffset); 
                 }); 

在我的情況我正在檢查,以確保目標值爲空之前映射。問題是無論目標值如何,複製都在發生。

我做錯了嗎?

感謝 ISAM

+0

它看起來是正確的。你使用的是什麼版本的Automapper?您能否顯示BM.AudioSetting的類定義以及未正確映射的數據? – PatrickSteele

回答

0

您的代碼應該很好地工作。可能你期望src.DestinationValue是目標對象的屬性。如果是這樣,自定義type converter應該可以幫助您實現預期的行爲。

This post應該可以幫助您創建自定義類型轉換器。

0

我注意到你的源和目標類型是一樣的。你實質上是在試圖克隆目標值爲空的對象嗎?如果是這樣,那麼根據這個問題的評論,AutoMapper可能不是合適的解決方案:Copy object to object (with Automapper ?)

相關問題