Je veux être averti lorsque les données changent dans une table particulière représentée par un modèle d'entité. Le modèle est-il au courant des changements de données sous-jacents? Si cela déclenche réellement un événement, comment puis-je m'abonner? P>
4 Réponses :
Non, il n'y a pas d'événements tirés sur Pour cela, essayez de regarder Cette question / réponses < / p> Changer code>, uniquement lorsque vous faites
SAVECHANGES code> Vous pouvez attraper ce dont vous avez besoin ... P>
Si votre objectif est de sauvegarder des données uniquement au cas où il y a des modifications, reportez-vous au lien suivant: P>
Votre question est en fait très peu claire. p>
Je veux être averti lorsque les données changent dans une table particulière, représentée par un modèle d'entité. P> blockQuote>
Qu'est-ce que cela signifie? p>
Voulez-vous être informé des modifications apportées à la base de données non effectuée par votre application? Ensuite, la réponse est la suivante: Aucun EF ne fournit aucun système de notification de ce type. Vous devez construire votre propre. P>
Voulez-vous être informé des modifications apportées à vos entités? La réponse est INOTIFYPROPERTYCHANGED interface et
Observablecollectio N pour les propriétés de navigation. Utilisez ces constructions dans vos entités pour pouvoir tirer des événements lorsque l'entité change. P> Voulez-vous savoir quels changements seront exécutés dans la base de données? Supprimer
SAVECHANGES CODE> ou gérer
Économie d'enregistrement CODE> et utilisez
ObjectStatManager CODE> pour obtenir la liste des entités modifiées. ici est un exemple comment obtenir la liste des entités ajoutées de type donné. p>
the Entity de package NugeFramework.triggers bien entoure la fonctionnalité de l'abonnement à une entité pour les insertions, mises à jour et suppressions.
Il suffit de envelopper votre contexte avec les dbcontextwithTriggers; p> puis abonnez-vous aux événements de déclenchement p> var mycontext = new MyContext() { TriggersEnabled = true };
Triggers<Person>.Inserting += entry =>
{
Console.WriteLine($"Person: {entry.Entity}");
};
Pour autant que je sache .. Non, mais aucune modification apportée à l'EDMX est effectuée par votre propre code. Vous pouvez donc mettre en œuvre un tel événement.