tutorial mvc migrations framework first español code c# ef-code-first entity-framework-6

c# - mvc - Cambios de guardado del marco de entidad



entity framework database first español (2)

¿Hay algún punto para guardar cambios después de una acción de solo lectura? Las entidades se cargan en la memoria caché, pero nada cambia, ¿deberían llamarse los cambios de guardar antes de deshacerse de ellos?


No necesita llamar a SaveChanges() menos que Add o Update en la entidad.


Desde doc ( DbContext.SaveChanges ) :

Guarda todos los cambios realizados en este contexto en la base de datos subyacente.

No, no tiene sentido llamar a SaveChanges si no ha realizado ningún cambio en su contexto.

Puede leer más sobre esto en detalle aquí

Una entidad puede estar en uno de los cinco estados definidos por la enumeración EntityState. Estos estados son:

  • Agregado: la entidad está siendo rastreada por el contexto, pero aún no existe en la base de datos
  • Sin cambios: la entidad está siendo rastreada por el contexto y existe en la base de datos, y sus valores de propiedad no han cambiado desde los valores en la base de datos.
  • Modificado: la entidad está siendo rastreada por el contexto y existe en la base de datos, y algunos o todos sus valores de propiedad han sido modificados
  • Suprimido: la entidad está siendo rastreada por el contexto y existe en la base de datos, pero se ha marcado para eliminarla de la base de datos la próxima vez que se llame a SaveChanges.
  • Independiente: la entidad no está siendo rastreada por el contexto

SaveChanges hace cosas diferentes para entidades en diferentes estados:

  • Las entidades no modificadas no son tocadas por SaveChanges. Las actualizaciones no se envían a la base de datos para las entidades en el estado Sin cambios.
  • Las entidades añadidas se insertan en la base de datos y luego se convierten en Sin cambios cuando se devuelve SaveChanges.
  • Las entidades modificadas se actualizan en la base de datos y luego se convierten en Sin cambios cuando SaveChanges regresa.
  • Las entidades eliminadas se eliminan de la base de datos y luego se desconectan del contexto.