Usage of Automapper when property names are differ

2019-01-22 07:50发布

问题:

We are using AutoMapper from Codeplex and for me the destination object has all the properties ending with 'Field', ie cityField and the source object has just city.

I can use the below code to achieve but all of the properties are just suffixed with 'Field' and there are 20 properties.

.ForMember(dest => dest.cityField, opt => opt.MapFrom(origin => origin.City));

Is there any other way to ignore 'Field' word when mapping and so that it can map without using .ForMember() 20 times?

回答1:

You can try recognizing postfixes:

Mapper.Initialize(cfg => {
    cfg.RecognizePostfixes("Field");
    cfg.CreateMap<Source, Dest>();
});

Recognizing prefixes also works local to profiles, if it's just a set of maps that this applies to.



回答2:

I think you'll have to implement your own INamingConvention to work around this.