Ich muss leere Zeichenfolgen vom Quellmodell als Null zum Zielmodell zuordnen. Zuerst habe ich nächstes Profil hierfür:Wie werden leere Zeichenketten mit Automapper als null zugeordnet?
public class MyProfile:Profile
{
public MyProfile()
{
CreateMap<SrcModel, DestModel>()
.ForMember(dst => dst.Field1, opt =>
{
opt.Condition(src => !string.IsNullOrEmpty(src.src_Field1));
opt.MapFrom(src => src.src_Field1)
})
//.......
//same for other 15 fields
}
}
Aber gleiche Logik duplizieren sieht nicht sehr gut und es ist schwer, ihn zu ändern.
Auch habe ich versucht, für String wie diese spezielle Karte zu erstellen:
CreateMap<string, string>().ConvertUsing(src => string.IsNullOrEmpty(src) ?
null : src)
Aber solche String Karte Auswirkungen auf alle meine Karten hat, aber ich solche Logik müssen nur für mehrere Karten, nicht für alle.
Ich habe auch versucht ForAllMembers Methode zu verwenden:
... .ForAllMembers(opt => opt.Condition();
Aber es gibt keinen Weg definieren Art von Quellenelement, um cpecify eine Bedingung für Streicher.
Was ist der beste Weg, um einige gemeinsame Mapping-Logik für mehrere Mitglieder des gleichen Typs für eine Karte zu definieren?