Por favor incluya:
- La definición de la entidad
- La clase de mapeo/configuración del contexto
- La definición de la tabla SQL
BackPropagateServerGen
Mirando el seguimiento de la pila, la clave que veo es BackPropagateServerGen
.
Entity Framework está ejecutando su actualización en la base de datos, pero uno de sus valores clave compuestos (presumiblemente COPY_ID) en realidad está siendo alterado por la llamada UPDATE. Este valor generado por el servidor regresa de la llamada SQL, y Entity Framework luego se queja de que el valor clave se está cambiando.
Entonces, supongo que su valor de clave compuesta COPY_ID está definido como un identificador generado por el servidor, pero uno o ambos están sucediendo:
- Está asignando una vista o un procedimiento almacenado que interfiere con lo que Entity Framework esperaría de una ACTUALIZACIÓN estándar
- Tiene uno o más disparadores en la tabla, vista o procedimiento almacenado que interfiere con el resultado.
Si tiene algún disparador, desactívelo temporalmente para ver si el problema se detiene.
Si está asignando una vista o un procedimiento almacenado, intente asignar directamente a la tabla si es posible.
Utilice las herramientas de generación de perfiles que tenga para capturar qué código SQL está ejecutando.
Resumen
Creo que la llamada ACTUALIZAR en realidad está llegando a la base de datos, pero el resultado devuelto está cambiando los valores clave, lo que hace que Entity Framework falle y probablemente revierta la transacción ACTUALIZAR (según la versión de EF que esté usando).