2010-02-02 18 views
21

Używamy AutoMapper z Codeplex i dla mnie obiekt docelowy ma wszystkie właściwości kończące się na 'Field', tzn. CityField i obiekt źródłowy ma właśnie miasto.Użycie Automappera, gdy nazwy właściwości są różne

Potrafię użyć poniższego kodu, ale wszystkie właściwości mają po prostu przyrostek "Pole" i jest ich 20.

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

Czy istnieje inny sposób zignorować „pole” słowo podczas mapowania i tak, że może odwzorowywać bez użycia .ForMember() 20 razy?

Odpowiedz

18

Można spróbować uznając postfixes:

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

Rozpoznawanie prefiksy działa również lokalne do profili, jeśli jest to tylko zbiór map, które dotyczy to.

3

Myślę, że aby to obejść, trzeba będzie wdrożyć własną wersję INamingConvention.

+1

Link nie działa, ale otrzymałeś aktualizację? – CaffGeek

Powiązane problemy