2010-01-13 11 views
12

podczas komendy UPDATE otrzymałem następujący błąd:LinqToSql błędzie: Operacja nie jest ważne ze względu na obecny stan obiektu

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

starałem się usunąć jedną kolumnę z polecenia aktualizacji i to działa dobrze. Ta kolumna to FK, która jest podobna do innej FK, która działa poprawnie.

Jest to kod, który wykonuje aktualizację:

   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

Byłoby bardzo pomocne, gdyby dołączyć do aktualizacji L2S. –

Odpowiedz

0

Problem może być spowodowany przez związek lub innych ograniczeń. Na przykład, jeśli próbujesz upuścić wiersz, do którego id jest odwoływany przez inną tabelę z relacją. Być może po opublikowaniu zapytania SQL lub LINQ, które podaje błąd, możemy Ci pomóc.

+0

Dodałem kod –

5

Odpowiedź Grenade rzeczywiście mi pomogła, ponieważ natrafiłem na ten wyjątek podczas próby ponownego przypisania klucza obcego. Relacja/ograniczenie uniemożliwiło ponowne przypisanie klucza.

Jednakże udało mi się uzyskać bezpośredni dostęp do elementu relacji i zmienić jego przypisanie, zmieniając w ten sposób klucz obcy.

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

product.Manufacturer = new Manufacturer(manufacturerID); 
//or 
product.Manufacturer = OtherManufacturer; 
Powiązane problemy