2010-01-13 19 views
12

Durante un comando de actualización recibí el siguiente error:LinqToSql de error: Operación no es válida debido al estado actual del objeto

Operation is not valid due to the current state of the object

traté de quitar una columna de la orden de actualización y funciona bien. Esta columna es un FK que es similar al otro FK que funciona bien.

Este es el código que se ejecuta la actualización:

   ti.NumeroTitolo = titolo.Numero; 
       ti.RKTipoTitoloGenereTitolo = titolo.RkTipoTitoloGenereTitolo; 
       ti.RKBanca = titolo.RkBanca; 
       ti.DataScadenza = titolo.DataScadenza; 
       ti.RKTipoEsito = titolo.RkTipoEsito; 
       ti.ImportoTitolo = titolo.ImportoTitolo; 

       _dc.SubmitChanges(); 
+1

Sería de gran ayuda si incluyese la declaración de actualización de L2S. –

Respuesta

0

El problema puede ser causado por una relación u otra restricción. Por ejemplo, si está intentando eliminar una fila, el identificador es referenciado por otra tabla con una relación. Quizás si publicas la consulta SQL o LINQ que está dando el error, podemos ayudarte más.

+0

He añadido el código –

5

La respuesta de Grenade en realidad me ayudó porque me encontré con esta excepción cuando intentaba reasignar una clave externa. La relación/restricción impedía la reasignación de la clave.

Sin embargo, pude acceder al elemento de relación directamente y reasignarlo, reasignando así la clave externa.

product.manufacturer_id = manufacturerID; //This caused the above exception 

product.Manufacturer = new Manufacturer(manufacturerID); 
//or 
product.Manufacturer = OtherManufacturer; 
Cuestiones relacionadas