2014-10-21 1 views
0

나는 Automapper의 초보자입니다.오토 데스크를 사용하여 다른 클래스의 속성을 부모 클래스에 매핑하는 방법은 무엇입니까?

나는 domin 및 ViewModel 클래스가 있습니다.

도메인 클래스를 ViewModel 클래스에 매핑하고 싶습니다.

도메인 클래스 : 당신이 볼 수있는 경우

public class PurchaseOrder 
    { 
     public int Id { get; set; } 
     public string PONo { get; set; } 
     public DateTime PODate { get; set; } 

     public int CompanyId { get; set; } 
    } 

    public class Company 
    { 
     public int Id { get; set; } 
     public string Name { get; set; } 

    } 

보기 모델 클래스 이제

public class PurchaseOrderVM 
    { 
     public int Id { get; set; } 
     public string PONo { get; set; } 
     public DateTime PODate { get; set; } 

     public int CompanyId { get; set; } 
     public string CompanyName { get; set; } 


    } 

    public class CompanyVM 
    { 
     public int Id { get; set; } 
     public string Name { get; set; } 

    } 

는, 나는 ID, PONo, PoDate 완벽하게 매핑 할 수 있습니다.

하지만 CompanyID와 ComapanyName을 도메인의 VM 클래스에 매핑하는 방법을 알고 싶습니다.

당신이`PurchaseOrder.CompanyId` 속성에서`회사`의 가치를 얻을 것이다 어떻게 방법

static void POTransform() 
     { 


      PurchaseOrder PODomain = new PurchaseOrder(); 

      PODomain.Id = 1; 
      PODomain.PONo = "154"; 
      PODomain.PODate = Convert.ToDateTime("5-Jun-2014"); 

      Mapper.CreateMap<PurchaseOrder, PurchaseOrderVM>() 
       .ForMember(dest => dest.CompanyName, Source => Source.MapFrom(????); 

     } 
+0

변환? –

답변

0
Mapper.CreateMap<PurchaseOrder, PurchaseOrderVM>() 
      .ForMember(dest => dest.CompanyName, opt => opt.MapFrom(src => GetCompanyById(src.CompanyId).Name)); 
    } 


private Company GetCompanyById(int companyId) 
    { 
     .... 
    } 
+0

구문이 올바른가요? – bnil

관련 문제