Automapper verschachtelte Zuordnung

8

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.

    
ryan 24.10.2011, 14:02
quelle

3 Antworten

6

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 :

%Vor%

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%     
Bartosz 02.11.2011, 22:18
quelle
4

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%     
Rodrigo Couto 29.01.2016 00:00
quelle
0

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.

    
Sam 02.11.2011 22:24
quelle

Tags und Links