2012-02-12 21 views
5

En mi aplicación, tengo un método al que llamo desde el código que inicia la base de datos y esto funciona bien ."... se produjo un error al actualizar el contexto del objeto. El ObjectContext podría estar en un estado incoherente ..."

Acabo de crear un nuevo método grande que también agrega muchos más datos a la base de datos.

Cuando llamo a esto, que parece funcionar bien la primera vez que se ha ejecutado, pero, si me quedo de nuevo dentro de unos minutos del intento anterior, me sale el siguiente error:

The changes to the database were committed successfully, but an error occurred while updating the object context. The ObjectContext might be in an inconsistent state. Inner exception message: AcceptChanges cannot continue because the object's key values conflict with another object in the ObjectStateManager. Make sure that the key values are unique before calling AcceptChanges.

No estoy seguro de cómo solucionar esto, ¿alguien puede aconsejar algo? (¡además de no ejecutar esto dentro de unos minutos del último intento!).

+1

posible duplicado de [InvalidOperationException cuando se llama a SaveChanges en marco .NET Entidad] (http://stackoverflow.com/questions/1008582/invalidoperationexception-when-calling- savechanges-in-net-entity-framework) – Eranga

+0

@Eranga - Lo he leído, pero no me puedo relacionar con ese problema ni solucionarlo con esa solución. – Wil

+0

Muy difícil de responder sin una idea de las clases relevantes (propiedades PK y FK al menos). –

Respuesta

0
+2

Posiblemente "debería haber sido un comentario". –

+0

Lo siento, no lo sabía, pero lo conservaré ¡en mente! :) – Abbas

2

Este error suele producirse cuando intenta guardar un modelo de entidad que no ha definido así la clave principal (clave compuesta) que al igual que en la base de datos.

definir las claves en el archivo EntityTypeConfiguration como

this.HasKey(f => new { f.ID1, f.ID2 }); 
Cuestiones relacionadas