Zuordnung aus der Liste unten, um Objekt mit AutoMapper

Ich bin neu mit AutoMapper und habe ein problem ich versuche zu lösen.

Wenn ich ein source-Klasse wie folgt aus:

public class Membership
{
    public int MembershipId { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string OrganizationName { get; set; }
    public List<Address> Addresses { get; set; }
}

Ist, und die Adresse-Klasse sieht wie folgt aus:

public class Address
{
    public int AddressId{ get; set; }
    public int RefAddressTypeId { get; set; }
    public string AddressLine1 { get; set; }
    public string AddressLine2 { get; set; }
    public string City { get; set; }
    public string State { get; set; }
    public string Zip { get; set; }
    public bool IsPreferredAddress { get; set; }
}

Mein Ziel Klasse:

public class UserInformationModel
{
    public string UserName { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Organization { get; set; }
    public string EmailAddress { get; set; }
    public PhysicalAddress BillingAddress { get; set; }
    public PhysicalAddress ShippingAddress { get; set; }
}

- Und Zieladresse Klasse:

public class PhysicalAddress
{
    public AddressType AddressType{get; set;}
    public string AddressLine1 { get; set; }
    public string AddressLine2 { get; set; }
    public string City { get; set; }
    public string State { get; set; }
    public string PostalCode { get; set; }

}

Habe ich die Zuordnung wie dieses:

Mapper.CreateMap<MinistryMattersIntegration.BusinessObjects.Entities.Cokesbury.Membership, UserInformationModel>()
      .ForMember(dest => dest.Organization, opt => opt.MapFrom(src=>src.OrganizationName));

Dies ist Arbeit für die Mitgliedschaft in UserInformationModel, aber jetzt brauche ich, um Adressen zu bekommen, zu arbeiten. Eine wichtige Sache zu beachten, obwohl, ist, dass das Ziel einer einheitlichen Rechnungsanschrift und eine einzige Lieferadresse während in der ursprünglichen Modell, alle die Adresse gespeichert sind, als Liste. Die Art und Weise finden Sie die Versand-und Rechnungsadresse aus der Liste, indem man die RefAddressTypdId und die IsPreferredAddress. Nur eine bevorzugte Adresse existieren können einen bestimmten RefAddressTypeId.

So, meine Frage ist, wie bekommt man AutoMapper zu tun, diese Art von Zuordnung? Ist es möglich, oder bin ich besser dran, nur mit regulären mapping-code?

  • Ich habe auch genau das gleiche problem. Haben Sie die Lösung gefunden für dein problem? Wenn ja dann kannst du bitte mit mir teilen.iam nicht immer, wie zu verwenden CustomResolver. Wenn Sie freigeben können einige Beispiel her Ihrem Fall wäre es sehr hilfreich.
InformationsquelleAutor Brian McCord | 2010-08-12
Schreibe einen Kommentar