2016-02-11 74 views
1

我必須從多個屬性返回CallerAddress屬性,就像string.Concat一樣,除非它們不爲null。到目前爲止,我已經嘗試過,但沒有工作。映射後,我的CallerAddress等於「Str。SomeStreetName」。我已經在我的數據庫中查了一下,並且我在其他colums上有價值。那麼,我該如何讓這個工作?只有在屬性中不爲null的情況下,Automapper纔會有多個屬性

Mapper.CreateMap<ClientRecordingsDao,ClientRecording>() 
    .ForMember(x => x.CallerAddress, 
         b => 
          b.MapFrom(
           x => x.CallerStreet != String.Empty 
            ? "Str." + x.CallerStreet 
            : String.Empty + 
             x.CallerStreetNumber != String.Empty 
             ? " Nr." 
             : String.Empty + x.CallerStreetNumber + 
              x.CallerBuilding != String.Empty 
              ? " Bl." 
              : String.Empty + x.CallerBuilding + 
               x.CallerApartment != String.Empty 
               ? " Ap." 
               : String.Empty + x.CallerApartment)) 

回答

1

它適用於+ opertator錯誤的地方。總結你的每一個在()比較:

Mapper.CreateMap<ClientRecordingsDao,ClientRecording>() 
    .ForMember(x => x.CallerAddress, b => b.MapFrom(
     x => (x.CallerStreet != String.Empty ? "Str." + x.CallerStreet : String.Empty) + 
      (x.CallerStreetNumber != String.Empty ? " Nr." + x.CallerStreetNumber : String.Empty) + 
      (x.CallerBuilding != String.Empty ? " Bl." + x.CallerBuilding : String.Empty) + 
      (x.CallerApartment != String.Empty ? " Ap." + x.CallerApartment : String.Empty))); 

您的代碼映射到這一點:

Mapper.CreateMap<ClientRecordingsDao,ClientRecording>() 
    .ForMember(x => x.CallerAddress, b => b.MapFrom(
     x => x.CallerStreet != String.Empty ? "Str." + x.CallerStreet : 
     (String.Empty + x.CallerStreetNumber != String.Empty ? " Nr." + x.CallerStreetNumber : 
     (String.Empty + x.CallerBuilding != String.Empty ? " Bl." + x.CallerBuilding : 
     (String.Empty + x.CallerApartment != String.Empty ? " Ap." + x.CallerApartment : String.Empty))))); 
+0

謝謝:)正在工作:d –

相關問題