AutoMapper en .Net Core
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.
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.
Modelos
Tendremos que crear dos modelos ,que en esta explicación es la Clase Cliente y ClienteRequest , para poder mapear de una a otra.
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.
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
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.
Creamos un controller para mostrar el cliente , donde inyectamos el repositorio para usar el metodo.
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.
Autor/a: Jose Margony Pesoa Villarroel
Curso: Desarrollo Web Full Stack + MultiCloud con Azure y AWS
Centro: Tajamar
Año académico: 2022-2023