Мне нужна твоя помощь.У меня есть базовый опыт работы с automapper, и все это прекрасно работает, но так или иначе я не могу сопоставить свое следующее изменение в исходном объекте с моим целевым объектом.
Позвольте мне объяснить это немного:
В IUser я добавил свойство 'UserDetails', и этот класс содержит свойство List of Guid под названием 'Domains'.
Я хочу отобразить это свойство списка второго уровня на мой объект UserDto, где список свойств guid находится на первом уровне.В приведенном ниже примере отображение Userkey работает нормально, но я получаю нулевое значение для «DomainIds» и не вижу, что я делаю неправильно.Я надеюсь, что вы можете помочь мне
public interface IUser
{
UserKey Key { get; }
UserDetails Details { get; set; }
FirstName { get; }
}
public struct UserKey
{
private readonly Guid _id;
public UserKey(Guid id)
{
_id = id;
}
}
public class UserDetails
{
public List<Guid> Domains { get; set; }
}
public class UserDto
{
public Guid Id { get; set; }
public string FirstName { get; set; }
public List<Guid> DomainIds { get; set; }
}
Настройка отображения следующая:
CreateMap<IUser, UserDto>()
.ForMember(
dest => dest.Id,
opt => opt.MapFrom(src => src.Key.Id))
.ForMember(
dest => dest.DomainIds,
opt => opt.MapFrom(src => src.Details.Domains))
В моем тесте я сопоставляю пользователя (который является IUser) следующим образом.К вашему сведению, все остальные свойства отображаются отлично
_mapper.Map<UserDto>(user);