Können Sie sagen, AutoMapper Global zu ignorieren fehlende Eigenschaften bei der Zuordnung?
Ich habe ziemlich wenig Einheiten und so weit, ich habe schon Dinge tun, wie
Mapper.CreateMap<Employee, EmployeeDetailsDTO>()
.ForSourceMember(mem => mem.NewsPosts, opt => opt.Ignore());
Möchte ich sagen, AutoMapper einfach zu ignorieren, fehlende Eigenschaften in der Ziel-Objekt ohne Angabe jeden von Ihnen. Bisher habe ich noch keinen Weg gefunden, dies zu tun mit meine mehreren SO und der Google-Suche. Hat jemand eine Lösung? Ich bin bereit, zu tun, irgendeine Art von Schleife oder nichts, so lange, wie es sein kann, einmal geschrieben, und dass es eine Skalierung mit dem Modell /dto änderungen oder zusätzlichen Eigenschaften.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie immer die Fehler? Ist es, wenn Sie anrufen
AssertConfigurationIsValid
?Wenn ja, dann einfach nicht diese Methode aufrufen
Sie nicht haben, um diese Methode aufzurufen, beachten Sie die folgenden mapping, das funktioniert:
Vielleicht möchten Sie anrufen
AssertConfigurationIsValid
für anderen mappings, um sicherzustellen, dass Sie korrekt sind, so stattdessen, was Sie tun müssen, ist, organisieren Sie Ihre mappings in Profile:und dann, wenn Sie entscheiden, dass Sie möchten, überprüfen Sie die Gültigkeit der Zuordnung (von Fall zu Fall in Ihrer situation), dann rufen Sie
wichtig in deinem Fall und/oder irgendein Fall, wo Sie dont nennen
AssertConfigurationIsValid
sollten Sie etwas verwenden wie AutoFixture und ein Unit-Test, um sicherzustellen, dass Ihre Zuordnung zu arbeiten. (was ist die Absicht derAssertConfigurationIsValid
)AutoMapper.Profile
) als diese Art-reduziert die statische Natur der Zuordnungen Konfiguration und der AufrufAssertConfigurationIsValid
würde dann für jeden Mapper.Map-Erklärung, die Sie gemacht haben.Ignore
Methoden als quasi-unit-test (vorausgesetzt, Sie nicht entfernen möchten, den Anruf zu AssertConfigurationIsValid) - tun, oder sonst, und, um die Antwort auf Ihre ursprüngliche Frage zu bekommen AutoMapper zu ignorieren, nicht zugeordnete Eigenschaften, entfernen Sie diesen Aufruf.Vorgeschlagen, in wal ' s Antwort "don' T call AssertConfigurationIsValid()" ist nicht sicher, wie es zu verstecken potenzielle Fehler in den Zuordnungen.
Es ist besser, explizit zu ignorieren mapping zwischen Klassen, für die Sie sicher, dass alle benötigten Eigenschaften bereits richtig zugeordnet. Sie können die Verwendung von Erweiterungen geschaffen, in AutoMapper: "Ignorieren Sie den rest"? Antwort:
Die Methode cfg.IgnoreUnmapped ignoriert nicht zugeordnete Eigenschaften auf allen Karten und wird nicht empfohlen, denn es verbirgt sich auch die möglichen Probleme für alle Klassen.
Wenn ich viele Klassen mit vielen Eigenschaften zu ignorieren, ich will nicht zu haben, Ausnahme beim aufrufen AssertConfigurationIsValid(), sondern lieber berichten Sie in einem Protokoll und einfach überprüfen, sind alle nicht zugeordneten Eigenschaften verpasst, absichtlich.
Weil die Methode zu tun, eine Validierung ist nicht ausgesetzt, indem AutoMapper, ich Fang AssertConfigurationIsValid und Rückgabe Fehlermeldung als string.
Ich rufe die ValidateUnmappedConfiguration Methode von unit-test