Qu'est-ce que le suivi dans Entity Framework?
sobes.tech IA
Réponse de l'IA
Le suivi (Entity Tracking) est un mécanisme dans Entity Framework Core qui surveille les modifications apportées aux objets d’entité chargés depuis la base de données. Le contexte stocke des informations sur l’état de chaque entité chargée et peut générer des requêtes SQL pour mettre à jour la base de données lors de l’enregistrement des modifications (DbContext.SaveChanges()).
Les états principaux des entités :
- Added : L’entité a été ajoutée au contexte, mais n’existe pas encore dans la base de données.
- Unchanged : L’entité a été chargée depuis la base de données et ses propriétés n’ont pas été modifiées.
- Modified : Certaines propriétés de l’entité ont été modifiées depuis son chargement depuis la base de données.
- Deleted : L’entité a été marquée pour suppression de la base de données.
- Detached : L’entité n’est pas suivie par le contexte.
Par défaut, les entités sont suivies lors de l’utilisation de requêtes LINQ. Cela permet à Entity Framework de déterminer automatiquement quelles modifications doivent être enregistrées.
Exemple d’indication explicite de suivi :
// Requête suivie
var trackedUser = context.Users.FirstOrDefault(u => u.Id == 1);
// Requête non suivie
var untrackedUser = context.Users.AsNoTracking().FirstOrDefault(u => u.Id == 2);
Désactiver le suivi avec AsNoTracking() peut améliorer les performances lors de l’exécution de requêtes si vous n’avez pas besoin d’enregistrer des modifications dans la base de données, car EF ne dépense pas de ressources pour suivre l’état des entités.