Mam przypadek, w którym chcę odwzorować obiekt na viewmodel iz powrotem. Muszę wyraźnie określić odwzorowanie za pomocą ForMember(), ponieważ ich właściwości nie mają takich samych nazw. Oto krótki przykład jak moje zajęcia wyglądać następująco:Automapper: mapowanie dwukierunkowe z ReverseMap() i ForMember()
public class PartTwo {
public int Integer { get; set; }
}
public class PartTwoViewModel {
public int PartInteger { get; set; }
}
I chcę wykorzystać je w ten sposób:
Mapper.CreateMap<PartTwo, PartTwoViewModel>()
.ForMember(dst => dst.PartInteger, opt => opt.MapFrom(src => src.Integer))
.ReverseMap();
var partTwoViewModel = new PartTwoViewModel() { PartInteger = 42 };
var partTwo = Mapper.Map<PartTwoViewModel, PartTwo>(partTwoViewModel);
Assert.AreEqual(partTwoViewModel.PartInteger, partTwo.Integer);
Ale to nie pasuje własność PartInteger do liczby całkowitej. (Integer to 0.)
Czy istnieje sposób, aby to zadziałało? (Kiedy właściwości obu klas mają takie same nazwy, działa.) Czy muszę ustawić jakąś opcję w metodzie ForMember()?
Tak, to działa. Miałem nadzieję, że nie będę musiał definiować mapowania odwrotnego, ponieważ mam wiele właściwości, które mapuję za pomocą ForMember(). – toni
Oto przykład: https://dotnetfiddle.net/0x8csL – Sergey