2010-02-02 24 views
21

Estamos usando AutoMapper de Codeplex y para mí el objeto de destino tiene todas las propiedades que terminan en 'Campo', es decir, cityField y el objeto fuente tiene solo ciudad.Uso de Automapper cuando los nombres de propiedades son diferentes

Puedo usar el siguiente código para lograrlo, pero todas las propiedades tienen el sufijo 'Campo' y hay 20 propiedades.

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

¿Hay alguna otra forma de ignorar 'Campo' palabra para hacer el mapa y para que se pueda asignar sin usar .ForMember() 20 veces?

Respuesta

18

Usted puede tratar de reconocer sufijos:

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

prefijos Reconociendo también funciona local para perfiles, si es sólo un conjunto de mapas que esto se aplica a.

3

Creo que tendrá que implementar su propio INamingConvention para evitar esto.

+1

El enlace está muerto, ¿recibiste una actualización? – CaffGeek

Cuestiones relacionadas