Почему autopper получает ошибку, когда я отображаю модель? - PullRequest
0 голосов
/ 19 апреля 2020

У меня проблемы с отображением. Когда я попытался отобразить модель, я принял следующую ошибку:

Типы отображения ошибок.

Типы отображения: TeamModel -> Team Basketball. Core.Models.TeamModel -> Basketball.Core.Entities.Team

Тип Конфигурация карты: TeamModel -> Team Basketball.Core.Models.TeamModel -> Basketball.Core.Entities.Team

Назначение Участник: Местоположение

Я пытаюсь сопоставить следующие модели:

public class TeamModel
{
    public string Id { get; set; }
    public string Name { get; set; }
    public string Location { get; set; }
    public string Region { get; set; }
    public string Country { get; set; }
    public bool InPlayoff { get; set; }
    public int Wins { get; set; }
    public int Loses { get; set; }        
}

public class Team
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int LocationId { get; set; }
    public bool InPlayoff { get; set; }
    public int Wins { get; set; }
    public int Loses { get; set; }
    public Location Location { get; set; }
}

И моя конфигурация картографа:

 CreateMap<TeamModel, Team>()
   .ForMember(x => x.Id, x => x.MapFrom(y => y.Id))
   .ForMember(x => x.Name, x => x.MapFrom(y => y.Name))
   .ForMember(x => x.InPlayoff, x => x.MapFrom(y => y.InPlayoff))
   .ForMember(x => x.Wins, x => x.MapFrom(y => y.Wins))
   .ForMember(x => x.Loses, x => x.MapFrom(y => y.Loses));

Мне не нужно отображать местоположение, регион и страну, но если я добавлю:

 .ForPath(x => x.Location.Name, x => x.MapFrom(y => y.Location))
 .ForPath(x => x.Location.Region, x => x.MapFrom(y => y.Region))
 .ForPath(x => x.Location.Country, x => x.MapFrom(y => y.Country))

Mapper работает, но, как я сказал, мне это не нужно. Как решить эту ошибку? Где я ошибаюсь?

Ответы [ 2 ]

1 голос
/ 19 апреля 2020

Вы можете игнорировать это свойство следующим образом:

CreateMap<TeamModel, Team>()
   .ForMember(x => x.Id, x => x.MapFrom(y => y.Id))
   .ForMember(x => x.Name, x => x.MapFrom(y => y.Name))
   .ForMember(x => x.InPlayoff, x => x.MapFrom(y => y.InPlayoff))
   .ForMember(x => x.Wins, x => x.MapFrom(y => y.Wins))
   .ForMember(x => x.Loses, x => x.MapFrom(y => y.Loses))
   .ForMember(x => x.Location, opt => opt.Ignore());
0 голосов
/ 19 апреля 2020

Не обращайте внимания на свойства из автоматического средства, которые вам не нужны.

.ForPath(x => x.Location.Name, opt => opt.Ignore())
.ForPath(x => x.Location.Region, opt => opt.Ignore())
.ForPath(x => x.Location.Country, opt => opt.Ignore())

Надеюсь, это поможет.

...