2010-12-21 8 views
5

Hintergrund: Ich arbeite an einem Webdienst, der Eingabe, die ein Nullfeld hat, bedeuten soll, "keine Aktualisierung durchführen". Das Eingabeobjekt ist dem Datenbankmodell sehr ähnlich, aber nicht identisch. Deshalb verwenden wir Autoadapter, um die Transformationen auszuführen.Kann Autoapper Ziel ignorieren, wenn es nicht null ist/nur Nullfelder ändern

Also im Falle einer Aktualisierung möchte ich in der Lage sein, die vorhandenen Werte zu übernehmen, sie zu verwenden, um alle Nullfelder in der Eingabe zu überschreiben, und dann speichern, um das gesamte Update durchzuführen. Also gibt es eine Möglichkeit, Autoadapter nur Werte in das Ziel zu setzen, wenn das Zielfeld null ist?

+0

Es scheint, dass Sie dies jetzt tun können. Wenn Sie immer noch interessiert sind, dann werfen Sie einen Blick auf [diese Antwort] (http://stackoverflow.com/a/16073984/1505426) - Ich glaube, es ist ähnlich wie Ihre Frage. – Mightymuke

Antwort

2

Ja, kann es, aber Sie würden wahrscheinlich nicht durch den Ärger gehen wollen. Dazu benötigen Sie einen benutzerdefinierten Map-Handler für jedes Feld auf dem Objekt, das Sie ausführen möchten. Möglicherweise können Sie den benutzerdefinierten Handler für Eigenschaften des gleichen Typs freigeben, aber ich bin es nicht 100% sicher, ohne etwas von meinem alten Code zu betrachten).

+0

Es sieht jedoch aus, dass es möglich ist, das Gegenteil zu tun (Null in Quelle ignorieren). Ich bin mir nicht sicher, wie ich die Ignorierbedingung festlegen und trotzdem benutzerdefinierte Zuordnung für die Teile verwenden soll, die sie benötigen. – Seneca

+0

OK, aber wie machst du das überhaupt für * ein Feld *? – Faust

+0

@Faust - Viele Ressourcen zum Erstellen benutzerdefinierter Zuordnungslogik, z. B. http://cpratt.co/using-automapper-creating-mappings/ –

Verwandte Themen