¿Por qué usar Attach para actualizar Entity Framework 6?
Mientras buscaba las mejores prácticas para realizar la operación CRUD a través de EF, noté que es muy recomendable usarAttach()
oFind()
métodos antes de actualizar una entidad. Funciona bien y de acuerdo con la documentación de EF, estos métodos traen la entidad al contexto que es bastante claro para mí. Pero el siguiente código me confundió bastante
public void Update(object entity)
{
Record record = new Record() {
id = 1,
value = 5
};
using (SomeContext ctx = new SomeContext())
{
ctx.Entry(record).State = EntityState.Modified;
ctx.SaveChanges();
}
}
Supongamos que tenemos un registro con id = 1 en la base de datos. En esta condición, el código anterior actualizará el registro (establezca el valor en 5). La pregunta es ¿por qué funciona? Y entonces, ¿por qué debería usarAttach()
?. Por lo que entiendo, el registro no estaba vinculado al contexto de ninguna manera. Leo capítulos relevantes deesta libro yel tutorial pero usan el enfoque de 2 consultas. También navegué SO pero no encontré respuesta a mi pregunta. Ayúdame con una explicación o algunos buenos materiales, por favor.