O que é AutoMapper

AutoMapper é uma biblioteca pequena e simples que resolve um problema aparentemente complexo: livrar-se de mapear manualmente um objeto para outro. Esse tipo de código de atribuição de propriedades é repetitivo e entediante — o AutoMapper é a ferramenta que automatiza o mapeamento de objetos.

Mapeador objeto a objeto: Converte um objeto de entrada de um tipo em um objeto de saída de outro tipo.

O AutoMapper possui um conjunto de regras de convenção integradas. Desde que a classe de destino siga as convenções de nomenclatura, o mapeamento entre dois tipos pode ser feito com quase nenhuma configuração.

Escrever código de mapeamento à mão é tedioso, e testá-lo é ainda mais. O AutoMapper fornece configuração de tipo simples e também suporta testes unitários da lógica de mapeamento.

Instalação

Instalar via Console do Gerenciador de Pacotes NuGet

PM> Install-Package AutoMapper

Pacotes de extensão complementares

  1. AutoMapper.Data: Suporte a ADO.NET, permite mapear a partir de um IDataReader
  2. AutoMapper.EF6: Métodos de extensão para EF6, fornece projeção assíncrona ProjectTo
  3. AutoMapper.Collection: Mapeamento de equivalência de coleções, suporta comparar duas coleções e realizar comparação de igualdade de objetos
  4. AutoMapper.Collection.EF: Combina com chaves primárias do EF para julgar igualdade, trata automaticamente adição/modificação/exclusão de coleções, realizando operações de persistência de coleções DTO para coleções de entidades do banco de dados

Exemplo tradicional de atribuição manual de objetos

Duas classes People (origem) e Person (destino) com exatamente os mesmos nomes de propriedade

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 language: JavaScript (javascript)

Abordagem tradicional: atribuir manualmente cada propriedade uma por uma:

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

    // Copiar manualmente cada propriedade; quando há muitas propriedades, o código fica muito verboso
    person.Name = p.Name;
    person.Age = p.Age;

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

Desvantagens: Quanto mais propriedades houver, mais código repetitivo de atribuição; ao adicionar/modificar campos, todo o código de atribuição deve ser atualizado de acordo, e é fácil esquecer algo e introduzir bugs.

O que o AutoMapper faz: Substitui escrever manualmente um monte de instruções xxx.Propriedade = yyy.Propriedade, copiando automaticamente propriedades com o mesmo nome de acordo com as convenções.

O que é AutoMapper

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *