none
ASP.NET CORE FOREIGN KEY "FK_CarpetaApplicationUsers_Users_UserId" RRS feed

  • Pregunta

  • Buenas noche estoy desarrollando un sistema, en el cual tengo una tabla Llamada Carpeta y otro User este ultimo usa Identity el cual tienen una relación de muchos a muchos, la clase AspNetUser lo cambio el nombre a User y amplie las propiedades con otra clase llamada ApplicationUser este ultimo tiene una relación de muchos a muchos para lo cual cree una tabla intermedia llamada CarpetaApplicationUser, al crear una Nueva carpeta crear normal tanto en Carpeta como en la tabla relación, pero cuando vuelvo a registrar es donde me da error  y la pantalla que me sale como error es el siguiente.

    la clase que realiza esa actualizacion o registro es la siguiente 

    [HttpPost]
            public async Task<IActionResult> RegistrarMovimientoFuncionarioCarpeta([Bind("CarpetaId, IDCarpeta, UserId")] Carpeta carpeta,
                                                                                    [Bind("UserId")] ApplicationUser usuario)
            {
                //var carpetaAux = _context.Carpetas.Where(c => c.CarpetaId == carpeta.CarpetaId).First();
                //var usurarioAux = _context.Users.Where(u => u.Id == usuario.Id).First();
                CarpetaApplicationUser carpetaapplicationuser = new CarpetaApplicationUser();
                carpeta.UserId = usuario.Id;
                carpetaapplicationuser.CarpetaId = carpeta.CarpetaId;
                //var usuarioAux = _context.Users.Where(u => u.Id == usuario.Id).First();
                //carpetaapplicationuser.UserId = "07ecffb0-0371-482c-92ac-6417e6c37bf0";
                carpetaapplicationuser.UserId = carpeta.UserId;
                //carpetaapplicationuser.UserId = usuario.Id;
                carpetaapplicationuser.Fecha = DateTime.Now;
                _context.Add(carpetaapplicationuser);
                await _context.SaveChangesAsync();
    
    
                //CarpetaApplicationUser carpetacpplicationuser = new CarpetaApplicationUser
                //{
                //    CarpetaId = carpeta.CarpetaId,
                //    UserId = usuario.Id,
                //    Fecha = DateTime.Now
                //};
                //_context.Add(carpetacpplicationuser);
                //await _context.SaveChangesAsync();
                return RedirectToAction("Index");
            }

    el problema esta en esta linea de codigo 

    carpetaapplicationuser.UserId = carpeta.UserId;

    pero cuando inserta de la siguiente manera 

    carpetaapplicationuser.UserId = "07ecffb0-0371-482c-92ac-6417e6c37bf0";

    hace el registro correctamente, no se cual sea el error.

    System.Data.SqlClient.SqlException (0x80131904): Instrucción INSERT en conflicto con la restricción FOREIGN KEY "FK_CarpetaApplicationUsers_Users_UserId". El conflicto ha aparecido en la base de datos "DATPREDWEB", tabla "dbo.Users", column 'UserId'.
    Se terminó la instrucción.
       at System.Data.SqlClient.SqlCommand.<>c.<ExecuteDbDataReaderAsync>b__122_0(Task`1 result)
       at System.Threading.Tasks.ContinuationResultTaskFromResultTask`2.InnerInvoke()
       at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
    --- End of stack trace from previous location where exception was thrown ---
       at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)
    --- End of stack trace from previous location where exception was thrown ---
       at Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.ExecuteAsync(IRelationalConnection connection, DbCommandMethod executeMethod, IReadOnlyDictionary`2 parameterValues, CancellationToken cancellationToken)
       at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken)
    ClientConnectionId:75385891-4092-4e86-8d4f-317f00dda5a5
    Error Number:547,State:0,Class:16

    gracias



    • Editado SOLARONE(1) jueves, 10 de enero de 2019 10:19
    jueves, 10 de enero de 2019 4:23

Todas las respuestas

  • Hola  SOLARONE(1)

    Gracias por levantar tu consulta en los foros de MSDN. Con respecto a la misma, te comento que estaremos realizando una revisión a profundidad acerca del inconveniente que se te está presentando.

    Proporcionaremos una respuesta lo más pronto posible.

    Gracias por usar los foros de MSDN.

    Pedro Alfaro
     ____

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.
    jueves, 10 de enero de 2019 22:26
    Moderador