Отобразить поля с одинаковыми именами в разные поля в autompper - PullRequest
3 голосов
/ 01 апреля 2019

У меня есть модель, которую я пытаюсь отобразить из класса Match в .net core 2.0.Оба класса имеют свойство Name.

Мне нужно отобразить Match.Value => ViewCompany.Name

Но он всегда помещает Match.Name в ViewCompany..Name

Вот мой AutomapperProfile :

CreateMap<Match, ViewCompany>()
                .ForMember(dest => dest.Name, opt => opt.MapFrom(src => src.Value));

.ForMember (dest => dest.Name , opt =>opt.MapFrom (src => src.Value ))

ViewCompany :

public class ViewCompany
{
    public ViewCompany()
    {

    }

    public ViewCompany(string name)
    {
        this.Name = name;
    }

    public int Id { get; set; }

    public string Name { get; set; }
}

Приведенное выше отображение не работает.

Но если я изменю имя свойства в модели на что-то другое, например "Value" или "tempName", и обновлю профиль автоматического обработчика, он будет работать нормально.

Итак, нельзя ли отобразить свойства с одинаковыми именами на разные свойства в Automapper?

1 Ответ

3 голосов
/ 01 апреля 2019

Здесь происходит то, что Name отображается через конструктор .Простой способ избежать этого - сообщить AM, какой конструктор использовать:

 CreateMap<Match, ViewCompany>().ConstructUsing(source=>new ViewCompany());
...