Was ist AutoMapper

AutoMapper ist eine kleine, einfache Bibliothek, die ein scheinbar komplexes Problem löst: das manuelle Zuordnen eines Objekts zu einem anderen loszuwerden. Solcher Eigenschaftszuweisungscode ist repetitiv und langweilig – AutoMapper ist das Werkzeug, das Objektzuordnungen automatisiert.

Objekt-zu-Objekt-Mapper: Konvertiert ein Eingabeobjekt eines Typs in ein Ausgabeobjekt eines anderen Typs.

AutoMapper verfügt über einen eingebauten Satz von Konventionen. Solange die Zielklasse den Benennungskonventionen folgt, kann die Zuordnung zwischen zwei Typen mit fast keiner Konfiguration abgeschlossen werden.

Zuordnungscode per Hand zu schreiben ist mühsam, und ihn zu testen ist noch mühsamer. AutoMapper bietet eine einfache Typkonfiguration und unterstützt auch Unit-Tests für die Zuordnungslogik.

Installation

Über die NuGet-Paket-Manager-Konsole installieren

PM> Install-Package AutoMapper

Begleitende Erweiterungspakete

  1. AutoMapper.Data: ADO.NET-Unterstützung, ermöglicht das Zuordnen von IDataReader
  2. AutoMapper.EF6: Erweiterungsmethoden für EF6, bietet asynchrone ProjectTo-Projektion
  3. AutoMapper.Collection: Sammlungsäquivalenz-Zuordnung, unterstützt den Vergleich von zwei Sammlungen und den Objektgleichheitsvergleich
  4. AutoMapper.Collection.EF: Kombiniert mit EF-Primärschlüsseln zur Gleichheitsbewertung, verarbeitet automatisch Hinzufügen, Ändern und Löschen von Sammlungen und ermöglicht die Persistierung von DTO-Sammlungen in Datenbankentitätssammlungen

Traditionelles Beispiel für manuelle Objektzuweisung

Zwei Klassen People (Quelle) und Person (Ziel) mit genau denselben Eigenschaftsnamen

class People
{
    public int Age { set; get; }
    public string Name { set; get; }
}

class Person
{
    public int Age { set; get; }
    public string Name { set; get; }
}Code-Sprache: JavaScript (javascript)

Traditioneller Ansatz: Eigenschaften manuell eine nach der anderen zuweisen:

static void Main(string[] args)
{
    People p = new People() { Age = 13, Name = "Jack" };
    Person person = new Person();

    // Jede Eigenschaft manuell kopieren; bei vielen Eigenschaften wird der Code sehr wortreich
    person.Name = p.Name;
    person.Age = p.Age;

    Console.WriteLine(person.Name);
    Console.WriteLine(person.Age);
    Console.ReadKey();
}Code-Sprache: JavaScript (javascript)

Nachteile: Je mehr Eigenschaften vorhanden sind, desto mehr repetitiver Zuweisungscode; beim Hinzufügen/Ändern von Feldern muss der gesamte Zuweisungscode entsprechend angepasst werden, wobei leicht Fehler passieren und Bugs entstehen.

Was AutoMapper macht: Es ersetzt das manuelle Schreiben von vielen xxx.Eigenschaft = yyy.Eigenschaft-Anweisungen und kopiert automatisch gleichnamige Eigenschaften gemäß den Konventionen.

Was ist AutoMapper

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert