76 messaggi dal 16 marzo 2011
Salve

Ho un database modellato con modello edmx, in cui ho una tabella centrale Tabella A con singola chiave primaria (ID) relazionata ad una Tabella B con chiave primaria composta da due colonne (ID e CHIAVE). Il modello edmx mappa la Tabella B come EntityCollection nella Tabella A. Il problema è che quando voglio fare l'update dei valori nella tabella B (o anche l'inserimento anche direttamente nella tabella) al SaveChanges ricevo la seguente eccezione

{"Violazione del vincolo PRIMARY KEY 'PK_TabellaA'. Impossibile inserire la chiave duplicata nell'oggetto 'dbo.TabellaA'.\r\n \r\nL'istruzione è stata interrotta."}

il codice che eseguo prima del SaveChanges è

objectTabellaA.TabellaB.Add(TabellaBObject);

lo stesso avviene per il codice:

TabellaB.AddObject("TabellaB", TabellaBObject);

Sapete aiutarmi?

Grazie
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,
vale820_1 ha scritto:

Violazione del vincolo PRIMARY KEY 'PK_TabellaA'

uhm, credo che l'ObjectContext stia tentando di inserire objectTabellaA, anche se già esiste in TabellaA. Questo spiegherebbe la violazione sulla chiave primaria. Credo che TabellaBObject in questo caso non c'entri.

E' come se objectTabellaA sia stato aggiunto al contesto con .AddObject anziché essere recuperato con una Select o collegato mediante Attach.

Mostra il codice che usi per ottenere il riferimento a objectTabellaA.

ciao

Enjoy learning and just keep making
76 messaggi dal 16 marzo 2011
Perdonami mi sono accorta che stavo inserendo in un objet collection (così viene modella la tabella B perchè ha chiave primaria composta da più di un campo) un elemento che c'era davvero due volte...

Grazie mille lo stesso

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.