2012-03-15 10 views
16

he visto a mucha gente cuando se actualiza un registro de uso:¿Se requiere EntityState.Modified para una actualización?

... 
ms.Status = status; 
db.Entry(ms).State = EntityState.Modified; 
db.SaveChanges(); 

se requiere esta línea? Pude hacer una actualización sin eso.

db.Entry(ms).State = EntityState.Modified; 

Me preguntaba lo que esta declaración se utiliza realmente para si el contexto ya sabe que debe actualizar ese registro, sin que especificar explícitamente a continuación, ¿por qué molestarse especificar explícitamente?

Respuesta

30

Es necesario si sus cambios en la entidad se realizaron cuando la entidad no fue rastreada por el contexto EF (la entidad se separó). Si carga la entidad desde el contexto, la modifica y la guarda en el mismo contexto, no necesita usarla porque EF hará un seguimiento de los cambios y establecerá el estado automáticamente.

+0

Gracias esa es una explicación clara que tiene sentido ahora. – John

1

Según mi entender, esto solo debe utilizarse si la entidad se ha vuelto a adjuntar al contexto. De otra manera no.

Cuestiones relacionadas