Ich versuche, AutoMapper für die Konvertierung von Entität in DTO einzurichten. Ich weiß, dass ich .ForMember()
After verwenden soll Mapper.CreateMap<Entity, DTO>()
, um benutzerdefinierte Zuordnungen einzurichten, aber dies scheint keine verfügbare Methode zu sein.
Zur Verdeutlichung bearbeiten: Ich suche keinen Link zu der Dokumentation, die ich gelesen habe, oder eine Erklärung der grundlegenden Syntax. Ich verwende die richtige Syntax wie in den Antworten und in der Dokumentation beschrieben, zum Beispiel:
Mapper.CreateMap<EFAddress, Address>()
.ForMember(dest => dest.Code, opt => opt.MapFrom(src => src.Name));
Wenn ich in CreateMap <> einen ungültigen Typnamen habe, kann ich "ForMember" als gültige Methode sehen. Wenn Sie mit der Maus darüber fahren, wird die Methodensignatur angezeigt, wie ich es normalerweise erwarten würde. Sobald ich ihm zwei gültige Typen gebe, sagt ForMember, dass das Symbol nicht aufgelöst werden kann, als ob die Methode nicht verfügbar wäre.
Gibt es eine Einschränkung für die generischen Klassen, die ich nicht erfülle?
Vielen Dank
quelle
Mapper.CreateMap<Source, Dest>()
Methoden, auf die in allen folgenden Antworten verwiesen wird, jetzt (2016) als veraltet markiert sind .Antworten:
Versuchen Sie die folgende Syntax:
oder wenn die Quell- und Zieleigenschaften einfach den gleichen Namen haben:
Weitere Informationen und andere Zuordnungsszenarien finden Sie in den entsprechenden Abschnitten der Dokumentation .
quelle
Letztendlich glaube ich, dass sich dies als eine Art Inkompatibilität mit ReSharper herausstellte.
ReSharper scheint dazu geführt zu haben, dass der Automapper-Code falsch angezeigt wird, funktioniert aber einwandfrei (obwohl er rot mit Fehlermeldungen angezeigt wird). Durch die Deinstallation von ReSharper wurde dieses Problem vollständig behoben.
quelle
Eine Beispielimplementierung wäre wie folgt:
Wir müssen diese Eigenschaft zuordnen, da die Namen der Eigenschaften von Game und GameViewModel unterschiedlich sind. Wenn sie gleich und vom gleichen Typ sind, wird kein ForMember benötigt
Eine andere Verwendung des ForMember ist das Ignorieren von Zuordnungen
quelle
Diese Verwendung sowie:
quelle
Machst du das so?
Diese Seite enthält einige gute Beispiele
quelle