Problema de actualización de entidad de POCO puro en patrón de repositorio
Tengo un problema en mi UserRepository en el que quiero actualizar un usuario. No quiero que se actualicen ciertos campos, como la contraseña, a menos que se especifique. Por ejemplo, cuando paso al Usuario desde la vista, al servicio al repositorio, envía al usuario con una cadena de contraseña nula o vacía. Este nulo se escribe en la base de datos (que no quiero).
¿Cómo manejo una situación como esta?
Dominio
public class User
{
public int UserId { get; set; }
public string Email { get; set; }
public string Password { get; set; }
}
Repositorio
public User Save(User user)
{
if (user.UserId > 0)
{
User dbUser = context.Users.FirstOrDefault(u => u.UserId == user.UserId);
//What do I do here?
}
context.Users.AddObject(user);
context.SaveChanges();
return user;
}
Digamos que en este caso, mi punto de vista me permite cambiar soloEmail
, así que lo único que se envía de vuelta alSave()
método son:user.UserId
yuser.Email
mientrasuser.Password
es nulo. En mi caso, la base de datos arroja un error porque la contraseña debe ser anulable.