2016-08-11 2 views
-1

내가 실수 한 위치를 제안 할 수있는 사람이 있습니까?자식 개체의 일부 속성을 사용하여 개체를 다른 개체에 매핑하는 방법

public class DataModelProduct 
{ 
public int Id {get;set;} 
public string Name {get;set;} 
public string Price {get;set;}; 
public string Brand {get;set;} 
public string Color {get;set;} 
public string Dimentions {get;set;} 
public string Type {get;set;} 
public string Network {get;set;} 
} 

public class Product 
{ 
public int Id {get;set;} 
public string Name {get;set;} 
public string Price {get;set;} 
public Specification Spec {get;set;} 
} 

public class Specification 
{ 
public string Brand {get;set;} 
public string Color {get;set;} 
public string Dimentions {get;set;} 
public string Type {get;set;} 
public string Network {get;set;} 
} 


AutoMapper.Mapper.CreateMap< DataModelProduct, Product>(); 
AutoMapper.Mapper.CreateMap< DataModelProduct, Specification>(); 

당신은 Product 클래스는 코어 모델 및 DataModelProduct 가정 할 수는

Product 특성이 매핑 된 데이터베이스 모델이지만 Specification 속성은 null입니다.

+0

당신 수

public string Brand { get; set; } public Specification Spec { get; set; } 

그리고 당신의 매핑 초기화 코드는

var config = new MapperConfiguration(cfg => { cfg.CreateMap< DataModelProduct, Product>(); cfg.CreateMap< DataModelProduct, Specification>(); }); 

과 같은 런타임 코드 같은 것을해야한다 매핑 코드를 추가 하시겠습니까? –

+0

this.DB.SingleOrDefault ("여기서 id = @ 0", productId) .MapTo (); –

+0

은 완전히 다른 참조 정보입니까? –

답변

0

AutoMapper가 작동하도록 모든 속성 접근 자에게 권한을 부여해야합니다.

예 :

var product = Mapper.Map(dataModelProduct, new Product()); 

그리고 Specification에 매핑 :

var product = Mapper.Map(dataModelProduct, new Product()); 
product.Specification = new Specification(); 
Mapper.Map(dataModelProduct, product.Specification); 
+0

응답 해 주셔서 감사합니다. 하지만 접근 자에게도 작동하지 않았습니다. –

+0

'DataModelProduct'를 포함하여 모든 소스 및 대상 클래스에서 모든 속성을 편집 했습니까? –

+0

그래 .. 내가 여기 왜 이것을 게시했는지, 나는 automapper로 작업 해왔다. 어떻게 할 생각이 있지만 여전히 작동하지 않는다. –

관련 문제