2016-08-11 10 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です。 AutoMapperが機能するためにあなたはすべてのあなたの特性を与える必要が

+0

することができますあなたのマッピングコードを追加しますか? –

+0

これを返す.DB.SingleOrDefault ( "Where id = @ 0"、productId).MapTo (); –

+0

は明確に異なる参照情報ですか? –

答えて

0

はアクセサ:

例えば

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

そして、あなたのマッピングのinitコードは次のよう

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

そして、あなたのランタイムコードのようなものでなければなりません:Specification

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

とマッピング:

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

は、responceをありがとう... –

+0

'DataModelProduct'を含むすべてのソースクラスと宛先クラスのすべてのプロパティを編集しましたか? –

+0

ええ、私はこれをここに掲載したのですが、私はオートマトンで作業していましたが、どうやったらいいか分かりましたが、それでも動作していません。 –

関連する問題