ChangeTracker Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 |
| 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 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 |
É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. |