Deep-level-mapping mit Automapper
Ich versuche, map-Objekten mit multi-level-Mitglieder:
dies sind die Klassen:
public class Father
{
public int Id { get; set; }
public Son Son { get; set; }
}
public class FatherModel
{
public int Id { get; set; }
public int SonId { get; set; }
}
public class Son
{
public int Id { get; set; }
}
Dies ist, wie ich versuchen automap es:
AutoMapper.Mapper.CreateMap<FatherModel , Father>()
.ForMember(dest => dest.Son.Id, opt => opt.MapFrom(src => src.SonId));
dies ist die exception, die ich bekomme:
Ausdruck " dest => Umwandeln(dest.Sohn.Id)' lösen muss, um top-Niveau
Mitglied sind und nicht jedes Kind-Objekt Eigenschaften. Verwenden Sie einen benutzerdefinierten Konfliktlöser auf
der Kind-Typ oder die AfterMap option statt. Parameter name:
lambdaExpression
Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies funktioniert sowohl für die Zuordnung zu einem neuen oder einem vorhandenen Objekt ist.
wenn es immer mehr komplexe schreiben Sie eine ValueResolver Klasse, siehe Beispiel hier-
http://automapper.codeplex.com/wikipage?title=Custom%20Value%20Resolvers
Verwenden ForPath eher als ForMember & Es funktioniert wie Magie.