Я использую AutoMapper в своем приложении .net-core для создания DTO из моих сущностей Nhibernate для отправки клиенту в виде JSON.Тем не менее, есть некоторые запросы, которые мне нужны, чтобы опустить определенные свойства моей сущности.Например, предположим, что у меня есть следующие классы:
public class Person
{
public ICollection<Friend> Friends { get; set; }
}
public class PersonDTO
{
public ICollection<FriendDTO> Friends { get; set; }
}
Теперь есть случаи, когда мне нужно отправить клиенту человека со всеми его друзьями, однако иногда мне просто нужен человек.У меня есть конфигурация автоматического преобразователя, которая определяет простое отображение между Person и PersonDTO без пропущенных свойств, потому что это наиболее распространенный случай.Однако вместо того, чтобы создавать две отдельные DTOS (одна с сопоставленным свойством Friends, а другая с игнорируемым), было бы неплохо как-то указать это во время сопоставления.Я пробовал следующее, но, похоже, это не сработало:
var personDtoWithoutFriends = _mapper.map<Person, PersonDTO>(person,
opts => opts.ConfigureMap()
.ForMember(dest => dest.Friends, act => act.Ignore()))
Я знаю, что могу решить эту проблему с несколькими DTO, однако в моем приложении это очень распространенный шаблон, и я бы закончилдо создания большого количества DTO.Игнорирование определенных свойств в тех немногих случаях, которые мне нужны, кажется гораздо более элегантным решением.Я делаю что-то не так или это просто невозможно с помощью AutoMapper?