Ciao,

ho questo problema, di cui non riesco a capire l'origine.
Ho un client Silverlight che consuma dati ricavati da un servizio WCF basato su un modello EF che usa il template Self-tracking Entity.

Mediante una chiamata ricavo un oggetto Richiesta, con le sue relative Righe e, per ogni riga, il relativo Articolo.

Fino a qua tutto bene. Il problema è quando vado ad invocare il metodo WCF Salva(), così definito:

[code
Richiesta Salva(Richiesta richiesta)
{
_dc.Richieste.ApplyChanges(richiesta);
_dc.SaveChanges();
return richiesta;
}]


Questa chiamata mi genera una eccezione sulla chiamata ad ApplyChanges():

"AcceptChanges cannot continue because the object's key values conflict with another object in the ObjectStateManager. Make sure that the key values are unique before calling AcceptChanges."

In pratica, quando EF si va a ricaricare tutte le entity del grafo, incontra due volte la stessa entity Articolo e le considera due entità distinte anche se in realtà sono la stessa (hanno la stessa Entity Key).
Sto sbagliando qualcosa io oppure mi sto scontrando con un bug di EF?

Grazie
Ciao
Federico
Modificato da federico.orlandini il 02 maggio 2011 17.30 -
EDIT

L'errore al momento della chiamata dell'ApplyChanges() era dovuto all'errore nell'impostare la MergeOption a NoTracking del ObjectContext quando il servizio WCF va a leggere i dati dell'ordine. Settando questa opzione venivano create due istanze di ARTICOLO distinte per lo stesso articolo associato a due righe distinte.
Modificato da federico.orlandini il 06 maggio 2011 11.46 -

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.
Community
Ultimi messaggi
UTENTI ONLINE
    In primo piano

    I più letti di oggi

    Media
    In evidenza
    MISC