Подтвердить что ты не робот

Карта Automapper во вложенный класс

У меня есть 1 класс, для которого мне нужна карта t в несколько классов, например,

Это источник, из которого я сопоставляю (модель представления):

public class UserBM
{
    public int UserId { get; set; }

    public string Address { get; set; }
    public string Address2 { get; set; }
    public string Address3 { get; set; }
    public string State { get; set; }

    public int CountryId { get; set; }
    public string Country { get; set; }
}

Таким образом, целевой класс (модель домена):

public abstract class User
{
    public int UserId { get; set; }

    public virtual Location Location { get; set; }
    public virtual int? LocationId { get; set; }
}

public class Location
{
    public int LocationId { get; set; }

    public string Address { get; set; }
    public string Address2 { get; set; }
    public string Address3 { get; set; }
    public string State { get; set; }

    public virtual int CountryId { get; set; }
    public virtual Country Country { get; set; }

}

Вот как выглядит моя модель создания карты automapper:

Mapper.CreateMap<UserBM, User>();
4b9b3361

Ответ 1

Определите два отображения, оба из которых отображаются из одного источника в разные адресаты. В сопоставлении User сопоставьте свойство Location вручную, используя Mapper.Map<UserBM, Location>(...)

Mapper.CreateMap<UserBM, Location>();
Mapper.CreateMap<UserBM, User>()
    .ForMember(dest => dest.Location, opt => 
         opt.MapFrom(src => Mapper.Map<UserBM, Location>(src));