2017-03-08 6 views
1

Vor ein paar Tagen I asked a question für Mapping und ich vertraut auf Automapper dann kann ich Klasse B bis A erfolgreich zuordnen. Jetzt habe ich ein anderes Problem mit der Vererbung.C# AutoMapper - Inertaince Mapping - einfaches Beispiel

Ich habe vier Klassen.

Klasse A:

public class A : BaseViewModel { 
    prop string p1 { get; set; } 
    prop string p2 { get; set; } 
    prop string p3 { get; set; } 
} 

Klasse BaseViewModel:

public class BaseViewModel { 
    prop int Id {get; set;} 
    prop string SomeP1 {get; set;} 
} 

Klasse B:

public class B : BaseModel { 
    prop string p1 { get; set; } 
    prop string p3 { get; set; } 
} 

Klasse Basemodel:

public class BaseModel { 
    prop int Id {get; set;} 
    prop string SomeP2 {get; set;} 
} 

Mapper:

Mapper.CreateMap<B, A>(); 
A a_obj= Mapper.Map<A>(b_obj); 

Meine Frage ist: Wie kann ich Id in BaseViewModel zu Id in BaseModel Karte?

I found a solution aber es ist ein bisschen schwierig für mich.

+0

Sie müssen 'Include'..so so etwas wie' CreateMap (). Enthalten () 'und möglicherweise mit einer' ReverseMap() 'am Ende, je nach Ihren Bedürfnissen. – pinkfloydx33

+0

Können Sie mir eine vollständige Lösung geben? –

Antwort

2

Sie können diese verwenden:

Mapper.Initialize(cfg => cfg.CreateMap<B, A>()); 
var a_obj = Mapper.Map<A>(b_obj); 

. Tipp: Sie haben AutoMapper v6 verwenden *