2010-02-02 17 views
21

CodeMlex'ten AutoMapper kullanıyoruz ve bana göre hedef nesne 'Field' ile biten tüm özelliklere sahip, yani cityField ve source nesnesinin yalnızca şehri var.Özellik adları farklı olduğunda Automapper kullanımı

Aşağıdaki kodları elde etmek için kullanabilirim ancak özelliklerin tümü 'Alan' ile sonlandırıldı ve 20 özellik var.

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

haritalama 'Alan' kelimesini görmezden başka bir yolu var mı ve bu yüzden .ForMember() 20 kez kullanmadan eşleyebileceği?

cevap

18

Sen postfixes tanıyan deneyebilirsiniz: Bu geçerli olduğu haritaların sadece bir dizi eğer

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

tanıma önekleri de, profillerine yerel çalışır.

3

Bu konuda çalışmak için kendi INamingConvention'u uygulamanız gerektiğini düşünüyorum.

+1

Bağlantı bozuk, bir güncelleştirme var mı? – CaffGeek