Ошибка в Automapper при использовании IncludeMembers - PullRequest
0 голосов
/ 24 октября 2019

Я пытаюсь сопоставить два объекта, Запрос на RequestDto , используя Automapper 9.0 с IncludeMembers () , однако я всегда получаю следующее сообщение:

Свойство «Персона» не определено для типа «Запрос»

Я понимаю сообщение об ошибке, поскольку это свойство не определено и знаю, что я могу использовать ForMember на каждое свойство, но я хотел бы использовать IncludeMembers(). Как настроить Automapper для сопоставления моих объектов?

public class RequestDto
{
   public string FirstName {get;set;}
}

public class Request
{
  public SearchFields SearchFields {get;set;}
}

public class SearchFields 
{
  public Person Person {get;set;}
}

public class Person
{
  public string FirstName {get;set;}
}

Код сопоставления

CreateMap<Request, RequestDto>()
    .IncludeMembers(m=>m.SearchFields, m=>m.Searchfields.Person);
CreateMap<Person, RequestDto>(MemberList.None); 
CreateMap<SearchFields, RequestDto>(Memberlist.None);

1 Ответ

0 голосов
/ 24 октября 2019

Попробуй так:

CreateMap<Request, RequestDto>()
     .ForMember(x => x.FirstName, opt => opt.MapFrom(x => x.SearchFields.Person.FirstName));
...