Pregunta

Estoy utilizando dtos y convertidores en un escenario entidad framwork. Quiero actualizar una entidad. Así que puse esta declaración: databasecontext.Tablename(s).Attach(entityobj); Cada vez que llegue el final del programa con este error: An entity with the same identity already exists in this EntitySet.

Me sentía que podía conseguir alrededor de esto diciendo databasecontext.Tablename(s).Detach(entityobj); antes de llamar a Coloque de nuevo. Pero el programa sigue fallando en la declaración Adjuntar.

¿Qué me falta? ¿Qué método en el contexto DB llama actualización en el Servicio de dominio?

¿Fue útil?

Solución

Parece que usted está guardando el contexto abierta mientras realiza los cambios.

En ese caso, no es necesario volver a colocar el objeto con el contexto.

Si abre un contexto, obtener un objeto de un contexto, a continuación, cierre el contexto, hacer algunos cambios en el objeto, a continuación, abra un nuevo contexto. En este caso es necesario asociar el objeto con el contexto.

Otros consejos

La pregunta no es clara. Usted no ha mencionado cómo hace tiempo su contexto base de datos activa y cuándo se carga entidad en su contexto.

Pero en base a su pregunta supongo que tiene entidad cargada pasa en algún lugar como DTO y cuando el DTO se devuelve todavía está utilizando el mismo contexto. DTO convertir a la entidad y que está tratando a unir de nuevo => BANG excepción. La misma entidad no se puede colocar en dos ocasiones en su contexto. Trate de usar ObjectContext.ApplyCurrentValues ??lugar (EF 4.0) o ApplyPropertyChanges (EF 1.0).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top