none
Una propiedad dependiente en ReferentialConstraint está asignada a una columna generada por el almacén.

    Pregunta

  • Hola, tengo el siguiente problema al momento de agregar una entidad a la base de datos con el metodo AddObject del objectContext, al momento de ejecutar el saveChanges cae en la siguiente excepcion

    System.Data.UpdateException

    {"Se produjo un error mientras se actualizaban las entradas. Vea la excepción interna para obtener detalles."}

    InnerException

    {"Una propiedad dependiente en ReferentialConstraint está asignada a una columna generada por el almacén. Columna: 'idRuta'."}

    StackTrace

       en System.Data.Mapping.Update.Internal.TableChangeProcessor.CompileCommands(ChangeNode changeNode, UpdateCompiler compiler)
       en System.Data.Mapping.Update.Internal.UpdateTranslator.<ProduceDynamicCommands>d__0.MoveNext()
       en System.Linq.Enumerable.<ConcatIterator>d__71`1.MoveNext()
       en System.Data.Mapping.Update.Internal.UpdateCommandOrderer..ctor(IEnumerable`1 commands, UpdateTranslator translator)
       en System.Data.Mapping.Update.Internal.UpdateTranslator.ProduceCommands()
       en System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager, IEntityAdapter adapter)
       en System.Data.EntityClient.EntityAdapter.Update(IEntityStateManager entityCache)
       en System.Data.Objects.ObjectContext.SaveChanges(SaveOptions options)
       en System.Data.Objects.ObjectContext.SaveChanges()
       en DAL.EntityFramework.HojaRutaDAL.guardarRuta(HojaRutaDTO nuevaRutaDTO) en c:\Users\igalleguillos\Desktop\Nueva carpeta (2)\HojaRuta 19052015\DAL\EntityFramework\HojaRutaDAL.cs:línea 52

    Codigo donde se produce la excepcion

    public void guardarRuta(HojaRutaDTO nuevaRutaDTO)
            {
                try
                {
                    using (RUTASEntities baseDeDatos = new RUTASEntities())
                    {
                        RutaReparto nuevaRuta = new RutaReparto();
                        new HojaRutaMP().DTOAEntidad(nuevaRutaDTO, nuevaRuta);
                        baseDeDatos.RutaReparto.AddObject(nuevaRuta);
                        baseDeDatos.SaveChanges();
                    }
                    foreach (DocsRuta docRuta in nuevaRuta.DocsRuta)
                    {
                        guardarDocumentos(docRuta);
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }

            }

    En un principio estaba usando el ObjectContext como global, pero lei por ahi que en aplicaciones webs convenia mas hacer un llamado individual cada vez que se hace una solicitud, pense que podia ser el caso de mi error, pero no cambio nada. Espero me puedan ayudar. 

    Saludos

    lunes, 25 de mayo de 2015 12:34

Todas las respuestas

  • a mi me esta pasando lo mismo en una columna Identity. Como lo resolviste? gracias!
    lunes, 12 de septiembre de 2016 17:52
  • Se resulve poniendo la relacion 1 a n aunque sea 1 a 1, y en la configuracion le pones las restricciones para que sea 1 a 1 interno en el codigo
    miércoles, 06 de septiembre de 2017 22:18
  • Se soluciona desde tu Esquema de Base de Datos. A la tabla que estás relacionando quítale la Especificación de identidad. Es decir, que no se ponga el "id" automáticamente y con esto, también que no sea incremental. Cabe mencionar que debe seguir siendo llave primaria.

    Y luego desde en tu código, cuando quieras crear la tupla, asígnale el id de la otra tabla.

    Espero que me entiendas.
    viernes, 26 de enero de 2018 20:08