Создать карту для IEnumerable в IEnumerable / List в autompper - PullRequest
0 голосов
/ 02 ноября 2019

У меня проблема с Automapper, когда у меня есть коллекция. Ниже моя ситуация

Бизнес модель

 public class Member
    {
        public int MemberId { get; set; }
        public int TeamID { get; set; }
        public Team Team { get; set; }
    }

, и я хочу вернуться ниже модели с контроллера

public class Member
{
    public int MemberId { get; set; }
    public string Team { get; set; }
    public int TeamId { get; set; }
}.

Я пытаюсь что-токак ниже, но не командная строка остается нулевой. Я считаю, что я должен указать отображение. Но я новичок в автомобилестроении, я не могу понять.

 IEnumerable<Models.Member> ienumerableDest = _mapper.Map<IEnumerable<Entities.Member>, List<Models.Member>>(members);

Вот ответ

1 Ответ

0 голосов
/ 03 ноября 2019

Полагаю, вы нигде не указали, как отображать свои классы.

В вашем классе Entities.Member у вас есть свойство Team типа Team, но вы пытаетесь отобразить его в строку, поэтомуэто не удается.

В вашей конфигурации добавьте профиль, который определяет это отображение, например:

 public class AppProfile : Profile
    {
        public AppProfile()
        {
            CreateMap<Entities.Member, Model.Member>(MemberList.Destination)
                .ForMember(d => d.Team, opt => opt.MapFrom(src => src.Team.Name));
        }
    }

В этом примере я принял свойство "Имя" в вашем объекте Team.

И в своем классе запуска вы должны зарегистрировать свой профиль в конфигурации AutoMapper.

...