2010-01-13 17 views
12

Durante un comando di aggiornamento ho ricevuto il seguente errore:LinqToSQL errore: operazione non è valida lo stato corrente dell'oggetto

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

ho cercato di rimuovere una colonna dal comando di aggiornamento e funziona bene. Questa colonna è un FK simile all'altra FK che funziona bene.

Questo è il codice che esegue l'aggiornamento:

   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

Sarebbe di grande aiuto se si includesse la dichiarazione di aggiornamento L2S. –

risposta

0

Il problema può essere causato da una relazione o altro vincolo. Ad esempio se si sta tentando di rilasciare una riga a cui viene fatto riferimento l'Id di un'altra tabella con una relazione. Forse se pubblichi la query SQL o LINQ che sta dando l'errore, possiamo aiutarti di più.

+0

Ho aggiunto il codice –

5

La risposta di Grenade mi ha davvero aiutato perché stavo riscontrando questa eccezione quando tentavo di riassegnare una chiave esterna. La relazione/vincolo impediva la riassegnazione della chiave.

Tuttavia, sono stato in grado di accedere direttamente all'elemento della relazione e riassegnarlo, riassegnando in tal modo la chiave esterna.

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

product.Manufacturer = new Manufacturer(manufacturerID); 
//or 
product.Manufacturer = OtherManufacturer; 
Problemi correlati