Qu’est-ce qu’AutoMapper

AutoMapper est une petite bibliothèque simple qui résout un problème en apparence complexe : se débarrasser du code de mappage manuel d’un objet vers un autre. Ce type de code d’affectation de propriétés est répétitif et ennuyeux — AutoMapper est l’outil qui automatise le mappage d’objets.

Mappeur objet-objet : Convertit un objet d’entrée d’un type en un objet de sortie d’un autre type.

AutoMapper intègre un ensemble de règles de convention. Tant que la classe cible respecte les conventions de nommage, le mappage entre deux types peut être effectué avec presque aucune configuration.

Écrire du code de mappage à la main est fastidieux, et le tester l’est encore plus. AutoMapper fournit une configuration de type simple et prend également en charge les tests unitaires de la logique de mappage.

Installation

Installer via la console du gestionnaire de packages NuGet

PM> Install-Package AutoMapper

Packages d’extensions compagnons

  1. AutoMapper.Data : Prend en charge ADO.NET, permet de mapper à partir d’un IDataReader
  2. AutoMapper.EF6 : Méthodes d’extension pour EF6, fournit une projection asynchrone ProjectTo
  3. AutoMapper.Collection : Mappage d’équivalence de collections, prend en charge la comparaison de deux collections et la comparaison d’égalité d’objets
  4. AutoMapper.Collection.EF : Combine avec les clés primaires EF pour juger l’égalité, gère automatiquement l’ajout, la modification et la suppression de collections, permettant la persistance des collections DTO vers les collections d’entités de base de données

Exemple d’affectation manuelle traditionnelle d’objets

Deux classes People (source) et Person (cible) avec exactement les mêmes noms de propriétés

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

class Person
{
    public int Age { set; get; }
    public string Name { set; get; }
}Langage du code : JavaScript (javascript)

Approche traditionnelle : affecter manuellement chaque propriété une par une :

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

    // Copier manuellement chaque propriété ; quand il y en a beaucoup, le code devient très verbeux
    person.Name = p.Name;
    person.Age = p.Age;

    Console.WriteLine(person.Name);
    Console.WriteLine(person.Age);
    Console.ReadKey();
}Langage du code : JavaScript (javascript)

Inconvénients : Plus il y a de propriétés, plus le code d’affectation répétitif est important ; lors de l’ajout/modification de champs, tout le code d’affectation doit être mis à jour en conséquence, et il est facile d’oublier quelque chose et d’introduire des bugs.

Ce que fait AutoMapper : Il remplace l’écriture manuelle d’une série d’instructions xxx.Propriété = yyy.Propriété, en copiant automatiquement les propriétés de même nom selon les conventions.

Qu’est-ce qu’AutoMapper

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *