2017-12-28 2 views
0

와 문자열 제목의지도 :ID로 항목을 얻을 나는이 개 모델이이 automapper

public class Client 
{ 
    public Guid Id { get; set; } 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 

    ... 

    [ForeignKey("CountryId")] 
    public Country Country { get; set; } 
    public Guid CountryId { get; set; } 
} 

public class Country 
{ 
    public Guid Id { get; set; } 
    public string Title { get; set; } 
} 

을하고 나는이 VM을 표시하려면 :

public class ClientDetailsDto 
{ 
    public Guid Id { get; set; } 

    ... 

    public string Country { get; set; } // Country's title 
} 

어떻게 Country를 가져 와서 ClientDetailsDto의 string Country에 매핑해야합니까? 내 시작 클래스 (Startup.cs)에 AutoMapper을 사용하고

:

AutoMapper.Mapper.Initialize(config => 
{ 
    config.CreateMap<Entities.Client, Models.ClientDetailsDto>() 
     .ForMember(dest => dest.Name, opt => opt.MapFrom(src => 
      $"{src.LastName} {src.FirstName} {src.Patronym}")) 
     .ForMember(dest => dest.Age, opt => opt.MapFrom(src => 
      src.Birthdate.GetCurrentAge())) 
     // How to get Country's title and map it to ClientDetailsDto.Country? 
} 

답변

0

그냥이 같은 시도;

.ForMember(dest => dest.Country, opt => opt.MapFrom(src => 
src.Country.Title) 

완성 된지도는 다음과 같습니다.

config.CreateMap<Entities.Client, Models.ClientDetailsDto>() 
    .ForMember(dest => dest.Name, opt => opt.MapFrom(src => 
     $"{src.LastName} {src.FirstName} {src.Patronym}")) 
    .ForMember(dest => dest.Age, opt => opt.MapFrom(src => 
     src.Birthdate.GetCurrentAge())) 
    .ForMember(dest => dest.Country, opt => opt.MapFrom(src => 
     src.Country.Title)); 
+0

그것은 내 문제를 해결하기 위해 내 첫 번째 시도는 게시하기 전에,이다 : C 그것은 문제가 무엇인지, 그래서 –

+0

를 작동하지 않습니다? – lucky

+0

null이 반환됩니다. –