Proszę, czy ktoś może doradzić, jak korzystać z mapowania warunkowego w AutoMaperze, aby odwzorować wartość w obiekcie TARGET z obiektu SOURCE na podstawie istniejącej wartości właściwości TARGET?C# Mapowanie warunkowe AutoMapowania na podstawie wartości docelowej
Więc moja klasa źródłem jest:
public class UserDetails
{
public String Nickname { get; set; }
}
Moja klasa celem jest:
public class ProfileViewModel
{
public Boolean NicknameIsVisible { get; set;
public String Nickname { get; set; }
}
Chcę ustawić "przydomek" wartości nieruchomości w systemie TARGET, aby dopasować "nickname" wartość nieruchomości w ŹRÓDŁO tylko wtedy, gdy wartość docelowa "NicknameIsVisible" jest już ustawiona na PRAWDA, w przeciwnym razie chcę ustawić wartość właściwości "Pseudonim" TARGET na pusty ciąg znaków.
Próbowałem coś takiego (co przyzwyczajenie kompilacji) ...
Mapper.CreateMap<UserDetails, ProfileViewModel>()
.ForMember(
destination => destination.Nickname,
option => option.
.MapFrom(
source => source.NicknameIsVisible ?
source.Nickname :
String.Empty)
);
ale „NicknameIsVisible” nie jest własnością mojego ŹRÓDŁO ale mój cel.
BTW, Mój ProfileViewModel jest związany z trzema podmiotami przy użyciu metody Owaina Wragga (http://consultingblogs.emc.com/owainwragg/archive/2010/12/22/automapper-mapping-from-multiple-objects.aspx) i jest to kolejna jednostka, która nadaje wartość właściwości "NicknameIsVisible".
Proszę, czy ktoś może zaproponować odpowiednią składnię do rozwiązania tego problemu?
Myślę, że może to być spowodowane tym, że właściwość nie została ustawiona w miejscu docelowym, więc nie może jej użyć. Prawdopodobnie będę musiał zmienić kolejność mapowania, aby osiągnąć to, czego wymagam. Skorzystam z moich ustaleń. – Dib
Daj nam znać, jak idziesz, chciałbym wiedzieć, co znajdziesz. – devduder
OK, zrobi. Mam nadzieję, że będę pracował nad tym wieczorem. – Dib