En este Post aprenderemos a como utilizar AutoMapper que básicamente es una biblioteca de mapeo de objetos para .Net que se utiliza para simplificar la tarea de asignar datos entre diferentes tipos de objetos.

Instalacion

Primeramente instalamos el nuget , tiene que finalizar en «DependencyInjection» para poderlo inyectarlo en el program.

nuget1

Dentro del program añadimos un nuevo servicio “AddAutoMapper”,el argumento typeof(Program) se utiliza para indicarle a AutoMapper que busque todos los perfiles de mapeo en el ensamblado que contiene la clase Program.

program2

Modelos

Tendremos que crear dos modelos ,que en esta explicación es la Clase Cliente y ClienteRequest , para poder mapear de una a otra.

model4
model3

Profiles

Luego tendremos que crear una carpeta profiles , con una clase dentro y que herede de profile.

Esta carpeta se utiliza para alojar archivos de perfiles de mapeo en la biblioteca de mapeo de objetos AutoMapper. Cada archivo de perfil de mapeo en esta carpeta define cómo se deben mapear dos objetos específicos.

profiles5

Dentro del contructor llamamos al metodo createmap , en este caso CreateMap<ClienteRequest, Cliente>() indica que se desea mapear un objeto de tipo ClienteRequest a un objeto de tipo Cliente. Esto significa que cuando se invoca el método Map() de AutoMapper con un objeto de tipo ClienteRequest como argumento, se creará automáticamente un objeto de tipo Cliente con las mismas propiedades y valores que el objeto de origen.

Dentro tendremos un metodo “FormMember” que indica que datos se van a mapear, en este caso de Nombre => Name, Correo => Email

createmap6

Repositorio y Controller

Creamos un repositorio como buena practica , para acceder a los datos , en este caso creo un metodo que me devuelve un Cliente ,creado estaticamente para el ejemplo, sin consumir una base de datos. En el repositorio creamos una variable llamada mapper de tipo IMapper que es una interfaz  que nos permite utilizar los metodos para el mapeo de objetos.

En el metodo utilizamos mapper.map para mapear el objeto , en este ejemplo de ClienteRequest a Cliente que esta en el diamante.

repositorio7

Creamos un controller para mostrar el cliente , donde inyectamos el repositorio para usar el metodo.

controlador8

Creamos la vista con Scaffolding con el modelo  Cliente y ejecutamos el proyecto.

Observamos que nos muestra correctamente el objeto , es decir del repositorio nos devuelve el objeto ClienteRequest y lo mapeamos a Cliente.

final9

Autor/a: Jose Margony Pesoa Villarroel

Curso: Desarrollo Web Full Stack + MultiCloud con Azure y AWS

Centro: Tajamar

Año académico: 2022-2023

Código: https://github.com/JPesoa1/MvcAutoMapperPost.git

Leave a Comment

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.