Gracias Gabriel. Valoro mucho que además de la explicación del concepto, el ejemplo lo vincule con el resto de la arquitectura y funcionalidad. Tu video está muy bien explicado y eres un profe de alto valor.
Buenas. Buen tuto, pero a partir del minuto 19 donde son propiedades complejas, tuvieramos un ICollection del tipo Addres??? como mostramos todas sus Address formateadas dentro de .ForMember? Saludos.
En teoria si, pero para mostrar los datos tendrias que recorrer la lista ejemplo for(x =0; x.model.lista.Count; x++;) y ahi asignas las propiedades ejemplo model.lista[x].atributo
@@Gilgameshx por supuesto, cualquier ciclo que recorra la lista, pero pregunto ya que hay procedimientos que funcionan con ciertos tipos de datos y con otros no, gracias por tu comentario.
Hola , sabes como podria hacer si yo tengo 2 objetos, el primero es Estudiante con codigo, Nombre , apellido, nota , usuarioregistro y usurioActualizo (Este primero tiene los 3 valores) y el segundo solo tiene codigo, nota y usurioActualizo, se me origino este problema debido a que cuando envio los datos del objeto con menos parametros , mi objeto origen pierde los datos de usuarioregistro , nombre y apellido.(Se me origino ya que yo deseo actualizar ese registro por entity y obviamente al actualizar me registra los otros como null :C , me ayudarias mucho respondiendo ojo que es un ejemplo parecido al que tengo ) Saludos.
@@bryanhinostrozasoftware mmmm si creo pero no recuerdo bien, creo que le hice un get al objeto por el codigo, despues le sete a ese objeto los valores que no sean null.
@@bryanhinostrozasoftware algo asi using Microsoft.EntityFrameworkCore; // ... public void ActualizarEstudiante(Estudiante estudianteActualizado) { using (var context = new TuDbContext()) { // Recuperar el estudiante existente var estudianteExistente = context.Estudiantes.FirstOrDefault(e => e.Codigo == estudianteActualizado.Codigo); if (estudianteExistente != null) { // Actualizar solo las propiedades no nulas del objeto estudiante existente if (estudianteActualizado.Nombre != null) { estudianteExistente.Nombre = estudianteActualizado.Nombre; } if (estudianteActualizado.Apellido != null) { estudianteExistente.Apellido = estudianteActualizado.Apellido; } if (estudianteActualizado.Nota.HasValue) { estudianteExistente.Nota = estudianteActualizado.Nota.Value; } // Guardar los cambios en la base de datos context.SaveChanges(); } } }
@@bryanhinostrozasoftware Este podria ser para todas las propiedades idea de chat got using Microsoft.EntityFrameworkCore; using System.Linq; using System.Reflection; // ... public void ActualizarEstudiante(Estudiante estudianteActualizado) { using (var context = new TuDbContext()) { // Recuperar el estudiante existente var estudianteExistente = context.Estudiantes.FirstOrDefault(e => e.Codigo == estudianteActualizado.Codigo); if (estudianteExistente != null) { // Obtener las propiedades del objeto actualizado PropertyInfo[] propiedades = estudianteActualizado.GetType().GetProperties(); foreach (var propiedad in propiedades) { // Obtener el valor de la propiedad actualizada var valorPropiedad = propiedad.GetValue(estudianteActualizado); // Actualizar la propiedad si no es nula if (valorPropiedad != null) { // Obtener la propiedad correspondiente en el estudiante existente var propiedadExistente = estudianteExistente.GetType().GetProperty(propiedad.Name); // Actualizar el valor de la propiedad en el estudiante existente propiedadExistente.SetValue(estudianteExistente, valorPropiedad); } } // Guardar los cambios en la base de datos context.SaveChanges(); } } }
Gracias Gabriel. Valoro mucho que además de la explicación del concepto, el ejemplo lo vincule con el resto de la arquitectura y funcionalidad. Tu video está muy bien explicado y eres un profe de alto valor.
super buena explicación, gracias.
Excelente explicacion! tenia problemas al mapear propiedades complejas y tu video me ayudo a solucionarlo. Gracias
Genial! Lo he usado algunas veces, pero en un par de proyectos venía mapeando a mano y quería recordar cómo era. Saludos!
High Value Content 👌👌
Muchas gracias, me ha servido de ayuda.
Con gusto, Sergio!
Mil gracias por esta explicación.
buen video crack!
Excelente. Muchas gracias
Maravilloso el video. Gracias por compartir.....
Gracias por tus videos, estoy tomando el curso de blazor en Udemy muy bueno tmb!!
Muchas gracias por tus palabras David!
sigue así amigo y gracias por tu conocimiento
Este video vale oro, Gracias por esta intro
@Gunnar Dustin stop the scam
Que crack muy bien explicado!!!!
Una pequeña lección, pero muy importante la forma en que se demuestra su utilidad...
muy buen video, recien me estoy cambiando de java a c# y tus videos tienen muy buen contenido 👏
Muy buena tu forma de explicar, gracias x compartir 👏🏻👏🏻👏🏻
Excelente.
Gracias maestro!!!
Buenas.
Buen tuto, pero a partir del minuto 19 donde son propiedades complejas, tuvieramos un ICollection del tipo Addres??? como mostramos todas sus Address formateadas dentro de .ForMember?
Saludos.
Hola, Sabes usar ABP Framework? seria bueno un tuto jeje
Excelente!!!!
Genial! Pero no respondiste esa pregunta tan importante ¿Debería usarlo?
moyyy boenooo, aunque prefiero mapear a mano. Gracias.
Excelente aporte, tengo una consulta con respecto a las propiedades compuestas, si fuera: public List addres {get; set;} funcionará exactamente igual?
En teoria si, pero para mostrar los datos tendrias que recorrer la lista ejemplo for(x =0; x.model.lista.Count; x++;) y ahi asignas las propiedades ejemplo model.lista[x].atributo
@@Gilgameshx por supuesto, cualquier ciclo que recorra la lista, pero pregunto ya que hay procedimientos que funcionan con ciertos tipos de datos y con otros no, gracias por tu comentario.
Que pasa si, con una colección de datos. Ejemplo quiero mostrar una factura con sus detalles como mapper trabaja?
en .net 6 desparece startups, en ese caso como quedaria la inyeccion?
alguien me pasa el link de la libreria para armar los repositorios y servicios por favor? me interesa a demas de este, y no lo encuentro
⭐⭐⭐⭐⭐
Hola , sabes como podria hacer si yo tengo 2 objetos, el primero es Estudiante con codigo, Nombre , apellido, nota , usuarioregistro y usurioActualizo (Este primero tiene los 3 valores) y el segundo solo tiene codigo, nota y usurioActualizo, se me origino este problema debido a que cuando envio los datos del objeto con menos parametros , mi objeto origen pierde los datos de usuarioregistro , nombre y apellido.(Se me origino ya que yo deseo actualizar ese registro por entity y obviamente al actualizar me registra los otros como null :C , me ayudarias mucho respondiendo ojo que es un ejemplo parecido al que tengo )
Saludos.
Hola, me pasa igual para los métodos Update, encontraste la solución?
@@bryanhinostrozasoftware mmmm si creo pero no recuerdo bien, creo que le hice un get al objeto por el codigo, despues le sete a ese objeto los valores que no sean null.
@@bryanhinostrozasoftware algo asi
using Microsoft.EntityFrameworkCore;
// ...
public void ActualizarEstudiante(Estudiante estudianteActualizado)
{
using (var context = new TuDbContext())
{
// Recuperar el estudiante existente
var estudianteExistente = context.Estudiantes.FirstOrDefault(e => e.Codigo == estudianteActualizado.Codigo);
if (estudianteExistente != null)
{
// Actualizar solo las propiedades no nulas del objeto estudiante existente
if (estudianteActualizado.Nombre != null)
{
estudianteExistente.Nombre = estudianteActualizado.Nombre;
}
if (estudianteActualizado.Apellido != null)
{
estudianteExistente.Apellido = estudianteActualizado.Apellido;
}
if (estudianteActualizado.Nota.HasValue)
{
estudianteExistente.Nota = estudianteActualizado.Nota.Value;
}
// Guardar los cambios en la base de datos
context.SaveChanges();
}
}
}
@@bryanhinostrozasoftware
Este podria ser para todas las propiedades idea de chat got
using Microsoft.EntityFrameworkCore;
using System.Linq;
using System.Reflection;
// ...
public void ActualizarEstudiante(Estudiante estudianteActualizado)
{
using (var context = new TuDbContext())
{
// Recuperar el estudiante existente
var estudianteExistente = context.Estudiantes.FirstOrDefault(e => e.Codigo == estudianteActualizado.Codigo);
if (estudianteExistente != null)
{
// Obtener las propiedades del objeto actualizado
PropertyInfo[] propiedades = estudianteActualizado.GetType().GetProperties();
foreach (var propiedad in propiedades)
{
// Obtener el valor de la propiedad actualizada
var valorPropiedad = propiedad.GetValue(estudianteActualizado);
// Actualizar la propiedad si no es nula
if (valorPropiedad != null)
{
// Obtener la propiedad correspondiente en el estudiante existente
var propiedadExistente = estudianteExistente.GetType().GetProperty(propiedad.Name);
// Actualizar el valor de la propiedad en el estudiante existente
propiedadExistente.SetValue(estudianteExistente, valorPropiedad);
}
}
// Guardar los cambios en la base de datos
context.SaveChanges();
}
}
}
Porque meter reflexión en una tarea tan simple, mejor sería crear métodos extendido. Sobrevalorada a mi gusto.