Compartir a través de


Seguimiento de cambios y resolución de identidades (Entity Framework)

ObjectQuery agrega los objetos nuevos devueltos por la consulta a la memoria caché de objetos mantenida por ObjectStateManager. El método Attach de ObjectContext y los métodos Load de EntityReference y EntityCollection también agregan objetos a la memoria caché de objetos. Hay un ObjectStateManager para cada contexto del objeto. Dentro de un contexto del objeto, los objetos se pueden agregar, modificar y eliminar, independientemente de los datos del origen de datos. Cuando varias consultas u operaciones de carga en el ámbito de un único contexto del objeto devuelven colecciones de objetos que contienen duplicados, los Servicios de objeto sólo mantienen una única instancia de un objeto con una clave de entidad específica en la memoria caché. De forma predeterminada, las consultas sólo devuelven los objetos que aún no están en la memoria caché, lo que significa que los cambios en los objetos que ya estén en la memoria caché no se sobrescriben. Este comportamiento se controla especificando un valor de MergeOption para las consultas y las operaciones de carga. El valor predeterminado es AppendOnly. De este modo sólo se cargan los objetos que aún no están presentes en la memoria caché de objetos, lo que significa que los objetos existentes no se sobrescriben. Otra manera de evitar que los cambios de la memoria caché de objetos se sobrescriban con las actualizaciones de la base de datos es especificar PreserveChanges. Esto se utiliza frecuentemente para resolver las excepciones de simultaneidad optimista al tiempo que se conservan los cambios en el contexto local. Para obtener más información, vea Guardar los cambios y administrar la simultaneidad (Entity Framework). Cuando se especifica OverwriteChanges, los objetos de la memoria caché son reemplazados por la versión más reciente de los objetos materializados de la base de datos, aunque se hayan realizado cambios en ellos.

Vea también

Otros recursos

Administrar el contexto del objeto (Entity Framework)