2016-08-11 2 views
-1

Kann jemand mir vorschlagen, wo ich den Fehler machte?Wie man ein Objekt einem anderen Objekt mit einigen Eigenschaften in einem Kindobjekt zuordnet

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>(); 

können Sie davon ausgehen, Product Klasse Core-Modell ist und DataModelProduct ist ein Datenbankmodell

Die Product Eigenschaften zugeordnet werden, aber die Specification Eigenschaft ist null.

+0

Können Sie

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

Und Ihre Mapping-init-Code sollte so etwas wie

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

Und Ihre Laufzeitcode wie sein Deinen Mapping-Code hinzufügen? –

+0

Rückgabe this.DB.SingleOrDefault ("Wobei ID = @ 0", ProductId) .MapTo (); –

+0

und sind definitiv verschiedene Referenzen? –

Antwort

0

Sie müssen alle Accessoren Ihre Eigenschaften für AutoMapper zu Funktion geben:

z.B.

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

Und die Abbildung auf Specification:

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

Vielen Dank für die Antwort, Aber ich habe Accessoren gegeben, auch wenn es nicht funktioniert hat. –

+0

Sie haben alle Eigenschaften für alle Quell- und Zielklassen einschließlich 'DataModelProduct' bearbeitet? –

+0

Ja..Ich tat das, warum ich dies hier gepostet habe, ich habe mit AutoMapper gearbeitet Ich habe eine Idee, wie es geht, aber es funktioniert immer noch nicht. –

Verwandte Themen