Middle
Qu'est-ce que le suivi des modifications (change tracking) ?
sobes.tech IA
Réponse de l'IA
Le suivi des modifications est un mécanisme dans ORM (Object-Relational Mapper), comme Entity Framework, qui suit l'état des entités (objets) chargées dans le contexte de données. Il détermine quelles entités ont été ajoutées, modifiées ou supprimées, afin que lors de l'enregistrement des modifications dans la base de données, les commandes INSERT, UPDATE ou DELETE appropriées soient exécutées.
États des entités :
- Added : Objet récemment créé et ajouté au contexte, mais pas encore enregistré dans la base de données.
- Unchanged : Objet chargé depuis la base de données ou sauvegardé, sans modifications.
- Modified : Un ou plusieurs attributs de l'objet ont été modifiés après son chargement ou sa sauvegarde.
- Deleted : Objet marqué pour être supprimé de la base de données.
- Detached : Objet qui n'est pas suivi par le contexte de données.
// Exemple de suivi des modifications dans Entity Framework Core
using (var context = new MyDbContext())
{
// Charger l'entité
var myEntity = context.MyEntities.Find(1);
// Vérifier l'état initial
Console.WriteLine($"État initial : {context.Entry(myEntity).State}"); // Affichera Unchanged
// Modifier une propriété
myEntity.MyProperty = "Nouvelle Valeur";
// Vérifier l'état après modification
Console.WriteLine($"État après modification : {context.Entry(myEntity).State}"); // Affichera Modified
// Ajouter une nouvelle entité
var newEntity = new MyEntity { MyProperty = "Une autre nouvelle" };
context.MyEntities.Add(newEntity);
// Vérifier l'état de la nouvelle entité
Console.WriteLine($"État de la nouvelle entité : {context.Entry(newEntity).State}"); // Affichera Added
// Marquer l'entité pour suppression
context.MyEntities.Remove(myEntity);
// Vérifier l'état après suppression
Console.WriteLine($"État après suppression : {context.Entry(myEntity).State}"); // Affichera Deleted
// Enregistrer les modifications dans la base de données
context.SaveChanges();
}