Quello che mi manca fuori?(Un'entità con la stessa identità è già presente in questa EntitySet.)

StackOverflow https://stackoverflow.com/questions/3845174

Domanda

Sto usando DTOs e convertitori di un'entità framwork scenario.Voglio aggiornare un'entità.Così ho messo questa dichiarazione:databasecontext.Tablename(s).Attach(entityobj); Ogni volta che si arriva qui il programma termina con questo errore:An entity with the same identity already exists in this EntitySet.

Ho sentito non ho potuto ottenere intorno a questo, dicendo databasecontext.Tablename(s).Detach(entityobj); prima ho chiamato il Collegare di nuovo.Ma il programma non riesce ancora sul Allegare dichiarazione.

Che cosa mi manca?Il metodo che sul DB contesto chiamate di Aggiornamento in Servizio del Dominio?

È stato utile?

Soluzione

Sembra che si stanno tenendo aperta contesto mentre si apportano le modifiche.

In questo caso non c'è bisogno di ricollegare l'oggetto al contesto.

Se si apre un contesto, ottenere un oggetto da un contesto, quindi chiudere il quadro, apportare alcune modifiche all'oggetto, quindi aprire un nuovo contesto. In questo caso è necessario collegare l'oggetto al contesto.

Altri suggerimenti

La domanda non è chiara.Non hai detto quanto tempo il vostro database contesto live e quando sei carico ente nel contesto.

Ma in base alla tua domanda credo che hai caricato entità passato da qualche parte come DTO e quando il DTO è tornato si utilizza ancora lo stesso contesto.La conversione di DTO per entità e che si sta tentando di collegare di nuovo => BANG eccezione.La stessa entità non può essere piazzato due volte nel contesto.Provare a utilizzare ObjectContext.ApplyCurrentValues invece (EF 4.0) o ApplyPropertyChanges (EF 1.0).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top