AutoMapper-Zuordnung zu einer Eigenschaft einer nullwertbaren Eigenschaft

8

Wie können Sie eine Eigenschaft einer Untereigenschaft zuordnen, die möglicherweise null ist?

z. B. schlägt der folgende Code mit einer NullReferenceException fehl, da die Benutzereigenschaft des Kontakts null ist.

%Vor%

Ich möchte den Benutzernamen von ContactModel stattdessen auf eine leere Zeichenfolge zurücksetzen.

Ich habe die NullSubstitute-Methode versucht, aber ich nehme an, dass versucht wird, mit User.Username und nicht nur mit der User-Eigenschaft zu arbeiten.

    
David Gardiner 04.11.2010, 00:28
quelle

3 Antworten

17

Sie könnten den Zuordnungscode wie folgt schreiben:

%Vor%

Dies überprüft, ob User null ist oder nicht und weist dann entweder eine emptpy Zeichenfolge oder die UserName zu.

    
davehauser 04.11.2010, 00:29
quelle
6

Wenn Sie feststellen, dass Sie wie in Daves Antwort eine Menge Null-Prüfungen durchführen, könnten Sie in Erwägung ziehen, die Technik anzuwenden, über die ich vor einiger Zeit gebloggt habe: Beseitigung von Null-Checks in Immobilienketten . So können Sie dies schreiben:

%Vor%     
Sandor Drieënhuizen 05.12.2010 16:06
quelle
2

Eine Lösung, die ich verwendet habe, besteht darin, einen Abschluss um den ursprünglichen Delegaten zu erstellen, der ihn in einen try / catch-Block einfügt. Es ist leider notwendig, Expression.Compile() zu verwenden, um zu verhindern, dass Visual Studio die Ausnahme abfängt, wenn sie in den ursprünglichen Delegaten geworfen wird. Wahrscheinlich nicht in Hochleistungsumgebungen empfohlen, aber ich hatte nie Probleme, es in normalen UI-Sachen zu verwenden. Ihr Kilometerstand kann variieren.

Erweiterungsmethode

%Vor%

Verwendung

%Vor%     
James Gregory 27.04.2011 14:27
quelle

Tags und Links