none
Como usar el metodo update de un repositorio generico RRS feed

  • Pregunta

  • Buenas a todos, tengo un repositorio genérico que lo saque de la pagina http://ltuttini.blogspot.com/, Cuando intento actualizar el dato de una entidad me sale el siguiente error: 

    An unhandled exception of type 'System.Data.Entity.Validation.DbEntityValidationException' occurred in EntityFramework.dll

    Al parecer creo que no estoy utilizando correctamente el método update. Para mayor detalle les paso el código de la aplicación:

    Repositorio genérico:

    public abstract class BaseRepository<T> : IRepository<T> where T : class
    {
            public void Update(T entity)
            {
                using (Context context = new Context())
                {
                    context.Entry(entity).State = EntityState.Modified;
                    context.SaveChanges();
                }
            }
    }

    Repositorio específico:

    public class RoleRepository : BaseRepository<Role>
    {
    
    }

    Capa de negocios:

    public class RoleBL
    {
        static RoleRepository rolRepository = new RoleRepository();
    
    
        public static Role Edit(int RoleId)
        {
            return rolRepository.Single(r => r.RoleId == RoleId);
        }
        public static void Update(Role roleData)
        {
            rolRepository.Update(roleData);
        }
    }

    Capa UI:

    private void btnRefresh_Click(object sender, EventArgs e)
    {
        Role role = new Role()
        {
            RoleId = this.roleId,
            Name = txtName.Text,
            Description = txtDescription.Text
        };
        RoleBL.Update(role);
    }

    gracias...

    martes, 25 de febrero de 2014 18:07

Todas las respuestas

  • hola

    pero le estas asignando un roleId existente en la tabla ?

    cuando se produce el error puedes analizar el InnerException, por lo general alli aporta alguna info adicional sobre el problema

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    miércoles, 26 de febrero de 2014 13:05
  • Hola leandro, gracias por la respuesta. Ya logré que funcione, pasando como parámetro del método Update, el mismo objeto que recupero para actualizar, claro cambiando los datos actualizados.

    Saludos...

    jueves, 27 de febrero de 2014 12:29