none
Método Attach y relaciones RRS feed

  • Pregunta

  • Buenas a todos,

    He descubierto hace poco el método Attach y me parece bastante útil, aunque me he encontrado con algún problema al querer cambiar el valor del campo de un cliente que hace de FK con una tabla de tarifas.

    Primeramente, he necesitado hacer lo que veis en el primer 'if' para que se asigne la tarifa correctamente, ya que parece que hay que definirle bien la relación para poder usar el método Attach.
    Pero ahora me encuentro con que cuando le paso null en ese campo (el campo admite null), me salta un error que dice:

    Se produjo una infracción de una restricción de integridad referencial: los valores de propiedad que definen las restricciones referenciales no son coherentes entre los objetos principal y dependiente de la relación.

    Cualquier idea será bienvenida :)

    Este es el código:

    if (cliente.TariCodi.HasValue)
                    {
                        cliente.Tarifa = new Tarifa() { TariCodi = cliente.TariCodi.Value };
                    }
    
                    //context.Attach(cliente);
                    context.Clientes.Attach(cliente);
                    context.ObjectStateManager.ChangeObjectState(cliente, System.Data.EntityState.Modified);
                    conn.SaveChanges();

    Muchas gracias!
    Carlos.

    miércoles, 15 de agosto de 2012 18:21

Todas las respuestas

  • hola

    usas EF code first ?

    valida aqui

    http://social.msdn.microsoft.com/Forums/en/adonetefx/thread/e7f8ff60-f799-4409-aae4-b90a55b107fc

    como hace uso del

    ObjectStateManager.ChangeRelationshipState

    para cambiar el estado de als entidades relacionadas


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    viernes, 17 de agosto de 2012 13:43