2010-12-04 7 views
0

Ich habe 2 Felder in DomainModel (CreatedOn, ModifiedOn), die nicht in meinem ViewModel sind. Wie kann ich die Source-Felder beim Zuordnen von DomainModel zu ViewModel ignorieren? Bitte korrigieren Sie den folgenden Code.ignore Zuordnung von DomainModel zu ViewModel

Mapper.CreateMap<DomainModel, ViewModel>() 
       .ForMember(d => d.CreatedOn, opt => opt.Ignore()) 
       .ForMember(d => d.ModifiedOn, opt => opt.Ignore()); 

Antwort

1

Sie müssen zu diesen Feldern nichts angeben. Nur:

Mapper.CreateMap<DomainModel, ViewModel>(); 

Wenn die CreatedOn und ModifiedOn Eigenschaften nicht auf Ihrem View-Modell existieren, wenn zwischen DM und VM Mapping werden sie einfach ignoriert.

0

Ich glaube, dass AutoMapper nur versuchen wird, diese Felder im Ziel zu füllen. Solange das Ziel keine Felder enthält, die sich zufällig in der Quelle befinden, sind diese Felder im Ziel nicht vorhanden, nachdem das Mapping abgeschlossen ist.

Wenn die Felder jedoch im Ziel vorhanden waren, scheint Ihre Syntax korrekt zu sein (obwohl aus Gründen der Konsistenz mit allen Beispielen, die ich gesehen habe, könnten Sie dest => dest.CreatedOn anstelle von d => d verwenden .CreatedOn - aber ich denke nicht, dass es brechen wird.

+0

Dieser Code funktioniert nicht, da, wenn ich dot nach d Eigenschaften createdon und modifiedon nicht listet drücken. Dies bedeutet, dass d. zeigt immer Zielfelder an. Jetzt will ich nur Werte in Source ignorieren, die DomainModel beim Zuordnen von DM zu VM ist. Irgendeine Lösung dafür? – Pirzada

+0

Die Felder werden nicht von Intellisense aufgelistet, da sie nicht im Ziel vorhanden sind (Ihr Ansichtsmodell). Diese Felder werden bereits ignoriert, obwohl sie möglicherweise in der Quelle (Ihrem Domänenmodell) vorhanden sind. – Mayo