Langue

ChangeTracker Classe

Définition

Fournit l’accès aux informations et opérations de suivi des modifications pour les instances d’entité que le contexte effectue le suivi. Les instances de cette classe sont généralement obtenues ChangeTracker et elles ne sont pas conçues pour être directement construites dans votre code d’application.

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
Héritage
ChangeTracker
Attributs
Implémente
IInfrastructure<Microsoft.EntityFrameworkCore.ChangeTracking.Internal.IStateManager> IResettableService

Remarques

Pour plus d’informations et d’exemples, consultez le suivi des modifications EF Core .

Constructeurs

Nom Description
ChangeTracker(DbContext, IStateManager, IChangeDetector, IModel, IEntityEntryGraphIterator)

Il s’agit d’une API interne qui prend en charge l’infrastructure Entity Framework Core et qui n’est pas soumise aux mêmes normes de compatibilité que les API publiques. Il peut être modifié ou supprimé sans préavis dans n’importe quelle version. Vous devez uniquement l’utiliser directement dans votre code avec une prudence extrême et savoir que cela peut entraîner des échecs d’application lors de la mise à jour vers une nouvelle version de Entity Framework Core.

ChangeTracker(DbContext)

Cette API prend en charge l’infrastructure Entity Framework Core et n’est pas destinée à être utilisée directement à partir de votre code. Cette API peut changer ou être supprimée dans les versions ultérieures.

ChangeTracker(IStateManager, IChangeDetector, IEntityEntryGraphIterator, DbContext)

Cette API prend en charge l’infrastructure Entity Framework Core et n’est pas destinée à être utilisée directement à partir de votre code. Cette API peut changer ou être supprimée dans les versions ultérieures.

Propriétés

Nom Description
AutoDetectChangesEnabled

Obtient ou définit une valeur indiquant si la DetectChanges() méthode est appelée automatiquement par les méthodes des DbContext classes associées.

CascadeDeleteTiming

Obtient ou définit une valeur indiquant quand une entité dépendante/enfant aura son état défini Deleted une fois que son entité parent/principal a été marquée comme Deleted. La valeur par défaut estImmediate.

Context

Obtient le contexte auquel appartient ce suivi des modifications.

DebugView

Développez cette propriété dans le débogueur pour une vue lisible par l’homme des entités suivies.

Avertissement : Ne vous appuyez pas sur le format des chaînes de débogage. Ils sont conçus pour le débogage uniquement et peuvent changer arbitrairement entre les versions.

Pour plus d’informations et d’exemples, consultez le suivi des modifications EF Core .

DeleteOrphansTiming

Obtient ou définit une valeur indiquant quand une entité dépendante/enfant aura son état défini sur une fois supprimé d’une entité parent/principale par le biais d’une propriété de navigation ou de clé étrangère définie Deleted sur Null. La valeur par défaut est Immediate.

LazyLoadingEnabled

Obtient ou définit une valeur indiquant si les propriétés de navigation des entités suivies seront chargées lors du premier accès.

QueryTrackingBehavior

Obtient ou définit le comportement de suivi pour les requêtes LINQ exécutées sur le contexte. La désactivation du suivi des modifications est utile pour les scénarios en lecture seule, car elle évite la surcharge de configuration du suivi des modifications pour chaque instance d’entité. Vous ne devez pas désactiver le suivi des modifications si vous souhaitez manipuler des instances d’entité et conserver ces modifications dans la base de données à l’aide SaveChanges()de .

Méthodes

Nom Description
AcceptAllChanges()

Accepte toutes les modifications apportées aux entités dans le contexte. Il est supposé que les entités suivies représentent l’état actuel de la base de données. Cette méthode est généralement appelée SaveChanges() après l’enregistrement des modifications dans la base de données.

CascadeChanges()

Force la suppression immédiate en cascade d’entités enfants/dépendantes lorsqu’elles sont soit supprimées d’une entité parent/principale requise, soit l’entité parent/principal requise est elle-même supprimée. Voir DeleteBehavior.

Clear()

Arrête le suivi de toutes les entités actuellement suivies.

DetectChanges()

Analyse les instances d’entité suivies pour détecter les modifications apportées aux données d’instance. DetectChanges() est généralement appelé automatiquement par le contexte lorsque up-to-date d’informations est requise (avant SaveChanges() et lors du retour des informations de suivi des modifications). En règle générale, vous n’avez besoin d’appeler cette méthode que si vous avez désactivé AutoDetectChangesEnabled.

Entries()

Retourne une EntityEntry valeur pour chaque entité suivie par le contexte. Les entrées fournissent l’accès aux informations et opérations de suivi des modifications pour chaque entité.

Entries<TEntity>()

Obtient une EntityEntry pour toutes les entités d’un type donné en cours de suivi par le contexte. Les entrées fournissent l’accès aux informations et opérations de suivi des modifications pour chaque entité.

GetEntriesForState(Boolean, Boolean, Boolean, Boolean)

Obtient une EntityEntry valeur pour chaque entité suivie par le contexte qui a le ou les états donnés. Les entrées fournissent l’accès aux informations et opérations de suivi des modifications pour chaque entité.

GetEntriesForState<TEntity>(Boolean, Boolean, Boolean, Boolean)

Obtient une EntityEntry<TEntity> entité pour chaque entité d’un type donné suivie par le contexte qui a le ou les états donnés. Les entrées fournissent l’accès aux informations et opérations de suivi des modifications pour chaque entité.

HasChanges()

Vérifie si des entités nouvelles, supprimées ou modifiées sont suivies afin que ces modifications soient envoyées à la base de données si SaveChanges() ou SaveChangesAsync(CancellationToken) est appelée.

TrackGraph(Object, Action<EntityEntryGraphNode>)

Commence le suivi d’une entité et de toutes les entités accessibles en parcourant ses propriétés de navigation. Traversal est récursif, de sorte que les propriétés de navigation de toutes les entités découvertes seront également analysées. L’entité spécifiée callback est appelée pour chaque entité découverte et doit définir le State suivi de chaque entité. Si aucun état n’est défini, l’entité reste sans suivi.

TrackGraph<TState>(Object, TState, Func<EntityEntryGraphNode,TState,Boolean>)

Commence le suivi d’une entité et de toutes les entités accessibles en parcourant ses propriétés de navigation. Traversal est récursif, de sorte que les propriétés de navigation de toutes les entités découvertes seront également analysées. L’entité spécifiée callback est appelée pour chaque entité découverte et doit définir le State suivi de chaque entité. Si aucun état n’est défini, l’entité reste sans suivi.

Cette méthode est conçue pour être utilisée dans les scénarios déconnectés où les entités sont récupérées à l’aide d’une instance du contexte, puis les modifications sont enregistrées à l’aide d’une autre instance du contexte. Par exemple, il s’agit d’un service web où un appel de service récupère des entités de la base de données et d’un autre appel de service conserve toutes les modifications apportées aux entités. Chaque appel de service utilise une nouvelle instance du contexte qui est supprimé une fois l’appel terminé.

En règle générale, la traversée du graphique doit s’arrêter chaque fois qu’une entité déjà suivie est rencontrée ou lorsqu’une entité est atteinte qui ne doit pas être suivie. Pour ce comportement classique, utilisez la TrackGraph(Object, Action<EntityEntryGraphNode>) surcharge. Cette surcharge, d’autre part, permet au rappel de décider quand la traversée se terminera, mais la charge est ensuite sur l’appelant pour s’assurer que la traversée n’entrera pas dans une boucle infinie.

TrackGraph<TState>(Object, TState, Func<EntityEntryGraphNode<TState>,Boolean>)

Commence le suivi d’une entité et de toutes les entités accessibles en parcourant ses propriétés de navigation. Traversal est récursif, de sorte que les propriétés de navigation de toutes les entités découvertes seront également analysées. L’entité spécifiée callback est appelée pour chaque entité découverte et doit définir le State suivi de chaque entité. Si aucun état n’est défini, l’entité reste sans suivi.

Événements

Nom Description
DetectedAllChanges

Événement déclenché quand des modifications ont été détectées dans le graphe d’entité, via un appel explicite à DetectChanges(), ou automatiquement, tel qu’une partie de l’exécution SaveChanges() ou SaveChangesAsync(CancellationToken).

DetectedEntityChanges

Événement déclenché quand des modifications ont été détectées sur une seule entité, via un appel explicite ou DetectChanges()DetectChanges()automatiquement, comme une partie de l’exécution SaveChanges() ou SaveChangesAsync(CancellationToken).

DetectingAllChanges

Un événement s’est déclenché lors de la détection des modifications apportées au graphe d’entité sur le point de se produire, soit par le biais d’un appel explicite à DetectChanges(), soit automatiquement, tel qu’une partie de l’exécution SaveChanges() ou SaveChangesAsync(CancellationToken).

DetectingEntityChanges

Un événement déclenché lors de la détection des modifications apportées à une seule entité est sur le point de se produire, soit par le biais d’un appel explicite à DetectChanges() ou DetectChanges(), soit automatiquement, tel qu’une partie de l’exécution SaveChanges() ou SaveChangesAsync(CancellationToken).

StateChanged

Événement déclenché lorsqu’une entité suivie par l’associé DbContext est passée d’une EntityState entité à une autre.

StateChanging

Événement déclenché lorsqu’une entité suivie par l’associé DbContext passe d’une entité EntityState à une autre.

Tracked

Événement déclenché lorsqu’une entité est suivie par le contexte, soit parce qu’elle a été retournée à partir d’une requête de suivi, soit parce qu’elle a été attachée ou ajoutée au contexte.

Tracking

Événement déclenché lorsqu’une entité est sur le point d’être suivie par le contexte, soit parce qu’elle est retournée à partir d’une requête de suivi, soit parce qu’elle est attachée ou ajoutée au contexte.

Implémentations d’interfaces explicites

Nom Description
IInfrastructure<IStateManager>.Instance
Obsolète.

Obtient le gestionnaire d’état interne utilisé pour stocker des informations sur les entités suivies.

Cette propriété est destinée à être utilisée par les méthodes d’extension. Il n’est pas destiné à être utilisé dans le code de l’application.

IResettableService.ResetState()

Réinitialise le service afin qu’il puisse être utilisé à partir du pool.

IResettableService.ResetStateAsync(CancellationToken)

Fournit l’accès aux informations et opérations de suivi des modifications pour les instances d’entité que le contexte effectue le suivi. Les instances de cette classe sont généralement obtenues ChangeTracker et elles ne sont pas conçues pour être directement construites dans votre code d’application.

Méthodes d’extension

Nom Description
GetInfrastructure<T>(IInfrastructure<T>)

Obtient la valeur d’une propriété masquée à l’aide IInfrastructure<T>de .

Cette méthode est généralement utilisée par les fournisseurs de base de données (et d’autres extensions). Il n’est généralement pas utilisé dans le code d’application.

ToDebugString(ChangeTracker, ChangeTrackerDebugStringOptions, Int32)

Crée une représentation lisible par l’homme des métadonnées données.

Avertissement : Ne vous appuyez pas sur le format de la chaîne retournée. Il est conçu pour le débogage uniquement et peut changer arbitrairement entre les versions.

S’applique à