2016-11-24 4 views
0
public string AdjustTimezoneForDisplay(DateTime date) 
{ 
    //....... 
} 

automapper конфигурациинастроить поле в automapper

Mapper.Initialize(config => 
{ 
    config.CreateMap<EquipmentOther, KMEquipmentOthers>() 
       .ForMember(x=>x.Status,opt=>opt.Ignore()) 
       .ForMember(x => x.CreatedOn, opt => opt.MapFrom(src =>src.CreatedOn)); 
} 

, что я пытаюсь достичь, чтобы настроить часовой пояс для поля CreatedOn как код ниже

ObjKMEquipmentOthers.CreatedOn = this._Utility.AdjustTimezoneForDisplay(EquipmentOtherDetails.CreatedOn); 

бы кто-нибудь, пожалуйста, помогите мне достигните этого

ps: AdjustTimezoneForDisplay - это функция настройки часового пояса и возврата с помощью местного ti мне

+1

'(х => x.CreatedOn, опт => opt.MapFrom (this._Utility.AdjustTimezoneForDisplay (opt.CreatedOn)))' –

+0

выражение @AmitKumarGhosh .ForMember не непросроченный, opt.MapFrom (opt.CreatedOn) второй вариант не содержит CreatedOn –

+0

.ForMember (x => x.CreatedOn, opt => opt.MapFrom (x => AdjustTimezoneForDisplay (x.CreatedOn))); это работает, когда я изменил статический класс на нестационарный –

ответ

0

это работало для меня, надеюсь, это поможет кто-нибудь в будущем

.ForMember(x => x.CreatedOn, opt => opt.MapFrom(x => AdjustTimezoneForDisplay(x.CreatedOn))); 

и пс:. AdjustTimezoneForDisplay должен быть статическим (initialy это было не статичным это моя проблема), опять же отображение initilizer также статическая

public static string AdjustTimezoneForDisplay(DateTime date) 
{ 
//....... 
} 
public static void RegisterMaps() 
{ 
    Mapper.Initialize(config => 
    { 
    config.CreateMap<EquipmentOther, KMEquipmentOthers>() 
      .ForMember(x=>x.Status,opt=>opt.Ignore()) 
      .ForMember(x => x.CreatedOn, opt => opt.MapFrom(x => AdjustTimezoneForDisplay(x.CreatedOn))); 
    } 
}