Ich habe die Wiki-Seite für das verschachtelte Mapping gelesen, scheint aber mehrere Verschachtelungsebenen nicht zu mögen. Ich habe die folgenden Karten erstellt und Klassen definiert.
%Vor%Aber der folgende Code ...
%Vor%Funktioniert diese tiefe Verschachtelung und ich habe sie falsch konfiguriert? Oder wird diese Art der Verschachtelung noch nicht unterstützt?
- Bearbeiten
Für alle Interessierten habe ich nicht die Kontrolle über die DTOs.
Es fehlt die Zuordnung von Adresse zu CompanyInformationDTO
, da sich diese Objekte auf derselben Verschachtelungsebene befinden.
Die Karte wird für MatchCompanyRequest
- & gt; erstellt. MatchCompanyRequestDTO
, aber es ist nicht möglich herauszufinden, ob Address
auf CompanyInformationDTO
abgebildet werden kann.
Ihr MatchCompanyRequestDTO
könnte also dieselbe Deklaration haben wie Ihr CompanyInformationDTO
:
Das betrifft Sie natürlich nur, wenn Sie automatisches Mapping verwenden wollen. Sie können Ihre Karten immer noch manuell konfigurieren, aber es scheint, dass die DTOs stattdessen repariert werden sollten, versuchen wir es trotzdem:
%Vor%Wichtig ist, dass Sie festlegen, wie tiefer Ihre Navigation ist, um die Stackoverflow-Probleme zu vermeiden. Stellen Sie sich diese Möglichkeit vor:
Sie haben 2 Entitäten Benutzer und Benachrichtigungen im NxN-Modell (Und Sie haben DTOs-Objekt, das zu repräsentieren, wenn Sie Benutzer automatisch Mapper ohne set MaxDepth in Ihrem Mapper-Ausdruck, "Huston, wir haben eine Problem ":).
Der folgende Code zeigt ein Workaround für alle Mapper. Wenn Sie möchten, kann für jeden Mapper definiert werden. Wie diese Frage
Lösung 1 (globale Definition)
%Vor%Lösung 2 (für jeden Mapper)
%Vor%Betrachten Sie stattdessen Folgendes:
%Vor%Ihre DTO-Objekte müssen die gleiche Struktur wie Ihre Domänenobjekte haben, damit die Standardzuordnungskonventionen in AutoMapper funktionieren.
Schau dir das an: Ссылка Es wird die Projektion für dich erklären, du könntest es so anpassen, dass es funktioniert du hast es.
Tags und Links c# automapper