none
ERROR AL ACTUALIZAR UNA ENTIDAD RRS feed

  • Pregunta

  • Amigos desarrolladores, espero me puedan apoyar en lo siguiente:

    Tengo un método donde necesito ACTUALIZAR una tabla y líneas mas abajo INSERTAR datos en otra tabla. El método GET y POST es el siguiente.

    public actionresult MontarVehiculo ()

    {

    WrapperClass = wrapperclass = new WrapperClass();

    wrapperclass.Neumatico = db.Neumaticos.Find(id);

    return View();

    }

    [HttpPost]

    public actionresult MontarVehiculo (WrapperClass wrapperclass)                          

    {

    db.Entry(wrapperclass.Neumatico).State = EntityState.Modified;
                    db.SaveChanges();    

    db.Inspecciones.Add(wrapperclass.Inspeccion);
                    db.SaveChanges();

    }

    El error me manda en db.Entry(wrapperclass.Neumatico).State = EntityState.Modified 

    Ya existe un objeto con la misma clave en ObjectStateManager. ObjectStateManager no puede realizar el seguimiento de varios objetos con la misma clave.

    Les agradeceré me indiquen que está mal

    Espero su apoyo.







    miércoles, 16 de octubre de 2013 16:11

Respuestas

  • hola

    yo lo recomendaria

    por supuesto si tienes una operacion que impacta en varias entidades defines una instncia del contexto para todas estas

    en realidad si usarias el patron de Unit of Work quedaria mas claro, ya que con este podrias realizar varias acciones y estas se realizan en el mismo contexto, pero se crea otro nuevo cuando se quiere realizar atra transaccion

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Willams Morales viernes, 18 de octubre de 2013 3:48
    viernes, 18 de octubre de 2013 2:52

Todas las respuestas

  • hola

    db es tu context ? si es asi usa

    [HttpPost]
    public actionresult MontarVehiculo (WrapperClass wrapperclass)                          
    {
    	using(NombreContext db = new NombreContext())
    	{
    		db.Entry(wrapperclass.Neumatico).State = EntityState.Modified;
    		db.Inspecciones.Add(wrapperclass.Inspeccion);
    		
    		db.SaveChanges();
    	}
    
    }

    no definas el contexto de forma global

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    jueves, 17 de octubre de 2013 11:35
  • Muchas gracias Leandro, signifnica que por cada método que tenga en mi controlador y donde haga uso de acceso a datos (context) debo definir el contexto de la manera que indicas?
    jueves, 17 de octubre de 2013 23:35
  • hola

    yo lo recomendaria

    por supuesto si tienes una operacion que impacta en varias entidades defines una instncia del contexto para todas estas

    en realidad si usarias el patron de Unit of Work quedaria mas claro, ya que con este podrias realizar varias acciones y estas se realizan en el mismo contexto, pero se crea otro nuevo cuando se quiere realizar atra transaccion

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Willams Morales viernes, 18 de octubre de 2013 3:48
    viernes, 18 de octubre de 2013 2:52