2010-01-13 5 views
12

Bei einem Update-Befehl ich folgende Fehlermeldung erhalten:LinqToSQL Fehler: Der Betrieb ist nicht gültig aufgrund des aktuellen Zustand des Objekts

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

Ich habe versucht, eine Spalte aus dem Update-Befehl zu entfernen, und es funktioniert gut. Diese Spalte ist eine FK, die der anderen FK ähnlich ist, die gut funktioniert.

Dies ist der Code, der das Update ausführt:

   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

Es wäre eine große Hilfe, wenn Sie die L2S Update-Anweisung enthalten. –

Antwort

0

Das Problem wird durch eine Beziehung oder eine andere Einschränkung verursacht werden kann. Zum Beispiel, wenn Sie versuchen, eine Zeile zu löschen, deren Id von einer anderen Tabelle mit einer Beziehung referenziert wird. Wenn Sie die SQL- oder LINQ-Abfrage bereitstellen, die den Fehler verursacht, können wir Ihnen möglicherweise mehr helfen.

+0

Ich hatte den Code hinzugefügt –

5

Die Antwort von Grenade hat mir wirklich geholfen, weil ich auf diese Ausnahme stieß, als ich versuchte, einen Fremdschlüssel neu zuzuweisen. Die Beziehung/Einschränkung verhinderte, dass der Schlüssel neu zugewiesen wurde.

Allerdings konnte ich direkt auf den Beziehungspunkt zugreifen und ihn neu zuweisen, wodurch der Fremdschlüssel neu zugewiesen wurde.

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

product.Manufacturer = new Manufacturer(manufacturerID); 
//or 
product.Manufacturer = OtherManufacturer; 
Verwandte Themen