Qué es AutoMapper

AutoMapper es una biblioteca pequeña y simple que resuelve un problema aparentemente complejo: deshacerse de mapear manualmente un objeto a otro. Este tipo de código de asignación de propiedades es repetitivo y aburrido; AutoMapper es la herramienta que automatiza el mapeo de objetos.

Mapeador objeto a objeto: Convierte un objeto de entrada de un tipo en un objeto de salida de otro tipo.

AutoMapper tiene integrado un conjunto de reglas de convención. Siempre que la clase de destino siga las convenciones de nomenclatura, el mapeo entre dos tipos se puede completar con casi ninguna configuración.

Escribir código de mapeo a mano es tedioso, y probarlo lo es aún más. AutoMapper proporciona una configuración de tipo simple y también admite pruebas unitarias de la lógica de mapeo.

Instalación

Instalar a través de la Consola del Administrador de Paquetes NuGet

PM> Install-Package AutoMapper

Paquetes de extensión complementarios

  1. AutoMapper.Data: Soporte para ADO.NET, permite mapear desde IDataReader
  2. AutoMapper.EF6: Métodos de extensión para EF6, proporciona proyección asíncrona ProjectTo
  3. AutoMapper.Collection: Mapeo de equivalencia de colecciones, admite comparar dos colecciones y realizar comparación de igualdad de objetos
  4. AutoMapper.Collection.EF: Combina con claves primarias de EF para juzgar igualdad, maneja automáticamente agregar/modificar/eliminar de colecciones, logrando operaciones de persistencia de colecciones DTO a colecciones de entidades de base de datos

Ejemplo tradicional de asignación manual de objetos

Dos clases People (origen) y Person (destino) con exactamente los mismos nombres de propiedad

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

class Person
{
    public int Age { set; get; }
    public string Name { set; get; }
}Lenguaje del código: JavaScript (javascript)

Enfoque tradicional: asignar manualmente cada propiedad una por una:

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

    // Copiar manualmente cada propiedad; cuando hay muchas propiedades, el código se vuelve muy verboso
    person.Name = p.Name;
    person.Age = p.Age;

    Console.WriteLine(person.Name);
    Console.WriteLine(person.Age);
    Console.ReadKey();
}Lenguaje del código: JavaScript (javascript)

Desventajas: Cuantas más propiedades haya, más código repetitivo de asignación; al agregar/modificar campos, todo el código de asignación debe actualizarse en consecuencia, y es fácil pasar por alto algo e introducir errores.

Lo que hace AutoMapper: Reemplaza escribir manualmente un montón de instrucciones xxx.Propiedad = yyy.Propiedad, copiando automáticamente las propiedades con el mismo nombre según las convenciones.

Qué es AutoMapper

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *