ChangeTracker Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Proporciona acceso a la información y las operaciones de seguimiento de cambios para las instancias de entidad que realiza el seguimiento del contexto. Las instancias de esta clase se obtienen normalmente de ChangeTracker y no están diseñadas para construirse directamente en el código de la aplicación.
public class ChangeTracker : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.ChangeTracking.Internal.IStateManager>
[System.Runtime.CompilerServices.Nullable(0)]
public class ChangeTracker : Microsoft.EntityFrameworkCore.Infrastructure.IResettableService
public class ChangeTracker : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.ChangeTracking.Internal.IStateManager>, Microsoft.EntityFrameworkCore.Infrastructure.IResettableService
public class ChangeTracker : Microsoft.EntityFrameworkCore.Infrastructure.IResettableService
type ChangeTracker = class
interface IInfrastructure<IStateManager>
[<System.Runtime.CompilerServices.Nullable(0)>]
type ChangeTracker = class
interface IResettableService
type ChangeTracker = class
interface IInfrastructure<IStateManager>
interface IResettableService
type ChangeTracker = class
interface IResettableService
Public Class ChangeTracker
Implements IInfrastructure(Of IStateManager)
Public Class ChangeTracker
Implements IResettableService
Public Class ChangeTracker
Implements IInfrastructure(Of IStateManager), IResettableService
- Herencia
-
ChangeTracker
- Atributos
- Implementaciones
-
IInfrastructure<Microsoft.EntityFrameworkCore.ChangeTracking.Internal.IStateManager> IResettableService
Comentarios
Consulte Seguimiento de cambios de EF Core para obtener más información y ejemplos.
Constructores
| Nombre | Description |
|---|---|
| ChangeTracker(DbContext, IStateManager, IChangeDetector, IModel, IEntityEntryGraphIterator) |
Se trata de una API interna que admite la infraestructura de Entity Framework Core y no está sujeta a los mismos estándares de compatibilidad que las API públicas. Se puede cambiar o quitar sin previo aviso en ninguna versión. Solo debe usarlo directamente en el código con extrema precaución y saber que hacerlo puede dar lugar a errores de aplicación al actualizar a una nueva versión de Entity Framework Core. |
| ChangeTracker(DbContext) |
Esta API admite la infraestructura de Entity Framework Core y no está pensada para usarse directamente desde el código. Esta API puede cambiar o quitarse en futuras versiones. |
| ChangeTracker(IStateManager, IChangeDetector, IEntityEntryGraphIterator, DbContext) |
Esta API admite la infraestructura de Entity Framework Core y no está pensada para usarse directamente desde el código. Esta API puede cambiar o quitarse en futuras versiones. |
Propiedades
| Nombre | Description |
|---|---|
| AutoDetectChangesEnabled |
Obtiene o establece un valor que indica si los métodos de DbContext y las clases relacionadas llaman automáticamente al DetectChanges() método . |
| CascadeDeleteTiming |
Obtiene o establece un valor que indica cuándo una entidad dependiente o secundaria tendrá su estado establecido en Deleted una vez que su entidad primaria o principal se haya marcado como Deleted. El valor predeterminado esImmediate . |
| Context |
Obtiene el contexto al que pertenece este rastreador de cambios. |
| DebugView |
Expanda esta propiedad en el depurador para obtener una vista legible de las entidades a las que se realiza el seguimiento. Advertencia: No confíe en el formato de las cadenas de depuración. Están diseñados solo para depurar y pueden cambiar arbitrariamente entre versiones. Consulte Seguimiento de cambios de EF Core para obtener más información y ejemplos. |
| DeleteOrphansTiming |
Obtiene o establece un valor que indica cuándo una entidad dependiente o secundaria tendrá su estado establecido en Deleted una vez separado de una entidad principal o primaria a través de una propiedad de navegación o clave externa que se establece en NULL. El valor por defecto es Immediate. |
| LazyLoadingEnabled |
Obtiene o establece un valor que indica si las propiedades de navegación de las entidades con seguimiento se cargarán en el primer acceso. |
| QueryTrackingBehavior |
Obtiene o establece el comportamiento de seguimiento de las consultas LINQ que se ejecutan en el contexto. Deshabilitar el seguimiento de cambios es útil para escenarios de solo lectura, ya que evita la sobrecarga de configurar el seguimiento de cambios para cada instancia de entidad. No debe deshabilitar el seguimiento de cambios si desea manipular instancias de entidad y conservar esos cambios en la base de datos mediante SaveChanges(). |
Métodos
| Nombre | Description |
|---|---|
| AcceptAllChanges() |
Acepta todos los cambios realizados en las entidades en el contexto. Se supone que las entidades con seguimiento representan el estado actual de la base de datos. Normalmente, se llama SaveChanges() a este método después de que los cambios se hayan guardado correctamente en la base de datos. |
| CascadeChanges() |
Fuerza la eliminación inmediata en cascada de entidades secundarias o dependientes cuando se separan de una entidad principal o principal necesaria, o bien se elimina la entidad primaria o principal necesaria. Consulte DeleteBehavior. |
| Clear() |
Detiene el seguimiento de todas las entidades con seguimiento actualmente. |
| DetectChanges() |
Examina las instancias de entidad con seguimiento para detectar los cambios realizados en los datos de instancia. DetectChanges() Normalmente, el contexto llama automáticamente cuando se requiere up-toinformación de fecha (antes SaveChanges() y al devolver información de seguimiento de cambios). Normalmente, solo tiene que llamar a este método si ha deshabilitado AutoDetectChangesEnabled. |
| Entries() |
Devuelve un EntityEntry para cada entidad a la que realiza el seguimiento el contexto. Las entradas proporcionan acceso a la información y las operaciones de seguimiento de cambios para cada entidad. |
| Entries<TEntity>() |
Obtiene un EntityEntry para todas las entidades de un tipo determinado al que realiza el seguimiento el contexto. Las entradas proporcionan acceso a la información y las operaciones de seguimiento de cambios para cada entidad. |
| GetEntriesForState(Boolean, Boolean, Boolean, Boolean) |
Obtiene un EntityEntry para cada entidad a la que realiza el seguimiento el contexto que tiene los estados especificados. Las entradas proporcionan acceso a la información y las operaciones de seguimiento de cambios para cada entidad. |
| GetEntriesForState<TEntity>(Boolean, Boolean, Boolean, Boolean) |
Obtiene un EntityEntry<TEntity> para cada entidad de un tipo determinado al que realiza el seguimiento el contexto que tiene los estados especificados. Las entradas proporcionan acceso a la información y las operaciones de seguimiento de cambios para cada entidad. |
| HasChanges() |
Comprueba si se realiza un seguimiento de las entidades nuevas, eliminadas o modificadas, de modo que estos cambios se enviarán a la base de datos si SaveChanges() se llama a o SaveChangesAsync(CancellationToken) . |
| TrackGraph(Object, Action<EntityEntryGraphNode>) |
Comienza a realizar el seguimiento de una entidad y de las entidades a las que se puede acceder mediante el recorrido de sus propiedades de navegación.
El recorrido es recursivo, por lo que también se analizarán las propiedades de navegación de las entidades detectadas.
Se llama al especificado para cada entidad detectada |
| TrackGraph<TState>(Object, TState, Func<EntityEntryGraphNode,TState,Boolean>) |
Comienza a realizar el seguimiento de una entidad y de las entidades a las que se puede acceder mediante el recorrido de las propiedades de navegación.
El recorrido es recursivo, por lo que también se analizarán las propiedades de navegación de las entidades detectadas.
Se llama al especificado para cada entidad detectada Este método está diseñado para su uso en escenarios desconectados en los que las entidades se recuperan mediante una instancia del contexto y, a continuación, los cambios se guardan mediante una instancia diferente del contexto. Un ejemplo de esto es un servicio web donde una llamada de servicio recupera entidades de la base de datos y otra llamada de servicio conserva los cambios en las entidades. Cada llamada de servicio usa una nueva instancia del contexto que se elimina cuando se completa la llamada. Normalmente, el recorrido del grafo debe detenerse siempre que se encuentre una entidad ya rastreada o cuando se alcance una entidad que no se debe realizar el seguimiento. Para este comportamiento típico, use la TrackGraph(Object, Action<EntityEntryGraphNode>) sobrecarga. Esta sobrecarga, por otro lado, permite que la devolución de llamada decida cuándo finalizará el recorrido, pero las responsabilidades están en el autor de la llamada para asegurarse de que el recorrido no entrará en un bucle infinito. |
| TrackGraph<TState>(Object, TState, Func<EntityEntryGraphNode<TState>,Boolean>) |
Comienza a realizar el seguimiento de una entidad y de las entidades a las que se puede acceder mediante el recorrido de sus propiedades de navegación.
El recorrido es recursivo, por lo que también se analizarán las propiedades de navegación de las entidades detectadas.
Se llama al especificado para cada entidad detectada |
Eventos
| Nombre | Description |
|---|---|
| DetectedAllChanges |
Evento desencadenado cuando se han detectado cambios en el gráfico de entidades, ya sea a través de una llamada explícita a DetectChanges()o automáticamente, como parte de la SaveChanges() ejecución o SaveChangesAsync(CancellationToken). |
| DetectedEntityChanges |
Evento desencadenado cuando se han detectado cambios en una sola entidad, ya sea a través de una llamada explícita a DetectChanges() o DetectChanges(), o automáticamente, como parte de la SaveChanges() ejecución o SaveChangesAsync(CancellationToken). |
| DetectingAllChanges |
Se desencadena un evento al detectar cambios en el gráfico de entidades a punto de producirse, ya sea a través de una llamada explícita a DetectChanges()o automáticamente, como parte de la SaveChanges() ejecución o SaveChangesAsync(CancellationToken). |
| DetectingEntityChanges |
Se desencadena un evento cuando se detectan cambios en una sola entidad, ya sea a través de una llamada explícita a DetectChanges() o DetectChanges(), o automáticamente, como parte de la SaveChanges() ejecución o SaveChangesAsync(CancellationToken). |
| StateChanged |
Evento desencadenado cuando una entidad a la que realiza un seguimiento el asociado DbContext se ha movido de una EntityState a otra. |
| StateChanging |
Evento desencadenado cuando una entidad a la que realiza un seguimiento el asociado DbContext se mueve de una EntityState a otra. |
| Tracked |
Evento desencadenado cuando el contexto realiza un seguimiento de una entidad, ya sea porque se devolvió de una consulta de seguimiento, o porque se adjuntó o agregó al contexto. |
| Tracking |
Evento desencadenado cuando el contexto realiza un seguimiento de una entidad, ya sea porque se devuelve de una consulta de seguimiento o porque se adjunta o se agrega al contexto. |
Implementaciones de interfaz explícitas
| Nombre | Description |
|---|---|
| IInfrastructure<IStateManager>.Instance |
Obsoletos.
Obtiene el administrador de estado interno que se usa para almacenar información sobre las entidades con seguimiento. Esta propiedad está pensada para su uso mediante métodos de extensión. No está pensado para usarse en el código de aplicación. |
| IResettableService.ResetState() |
Restablece el servicio para que se pueda usar desde el grupo. |
| IResettableService.ResetStateAsync(CancellationToken) |
Proporciona acceso a la información y las operaciones de seguimiento de cambios para las instancias de entidad que realiza el seguimiento del contexto. Las instancias de esta clase se obtienen normalmente de ChangeTracker y no están diseñadas para construirse directamente en el código de la aplicación. |
Métodos de extensión
| Nombre | Description |
|---|---|
| GetInfrastructure<T>(IInfrastructure<T>) |
Obtiene el valor de una propiedad que se oculta mediante IInfrastructure<T>. Normalmente, este método lo usan los proveedores de bases de datos (y otras extensiones). Por lo general, no se usa en el código de aplicación. |
| ToDebugString(ChangeTracker, ChangeTrackerDebugStringOptions, Int32) |
Crea una representación legible de los metadatos especificados. Advertencia: No confíe en el formato de la cadena devuelta. Está diseñado solo para la depuración y puede cambiar arbitrariamente entre versiones. |