Automapper расстегивается с префиксом
У меня есть несколько DTO, которые сопоставляются с объектами Domain благодаря автоматическому сопоставлению на основе соглашений, то есть поля адреса сглаживаются в DTO.
Это прекрасно работает для преобразования Домен -> DTO, но в противном случае мне нужно вручную "расстегнуть" адрес.
Интересно, есть ли возможность "префикс" конфигурации сопоставления, чтобы я мог сделать что-то вроде
Mapper.CreateMap<PersonDTO, Address>().WithPrefix("Address");
...
Mapper.CreateMap<PersonDTO, Person>()
.ForMember(d => d.Address, opt => opt.MapFrom(src => Mapper.Map<Address>(src) ))
в противном случае мне придется вручную сопоставлять каждое поле адреса, что становится проблемой для более сложных объектов.
мои доменные объекты и DTO
class Person
{
public string FirstName {get;set;}
public string LastName {get;set;}
public Address Address {get;set;}
}
class Address
{
public string Street {get;set;}
public string PostCode {get;set;}
}
и следующий DTO:
class PersonDTO
{
public string FirstName {get;set;}
public string LastName {get;set;}
public string AddressStreet {get;set;}
public string AddressPostCode {get;set;}
}
редактировать
Мне известны глобальные настройки "распознанных префиксов". Я бы предпочел установить обязательный префикс (не "один из распознанных") для конкретной карты.
1 ответ
Посмотрите на мой ответ на интересующий вопрос: AutoMapper не распознает префиксы, специфичные для профиля
Надеюсь это поможет!