Comment voir les modifications en attente d'Entity Framework?

.net c# entity-framework

Question

Je crée une application avec ADO.NET Entity Framework.

Je peux parcourir mon code ligne par ligne pendant le débogage et regarder SQL Server Profiler pour chaque requête exécutée, mais je ne peux pas comprendre d'où viennent toutes ces commandes SQL!

Parfois, lorsque SaveChanges() , Entity Framework effectue des INSERTS étranges et inattendues. Ils cassent parfois l'application. Je ne peux pas comprendre ce que je fais pour les causer.

Comment puis-je surveiller les modifications en attente en attente d'un appel SaveChanges() ?

Réponse populaire

Depuis Entity Framework 5.0, DbContext a une propriété ChangeTracker qui contient toutes les modifications en attente. Semblable à ObjectStateManager vous pouvez obtenir des entités dans différents états comme suit:

myDbContext.ChangeTracker.Entries().Where(e => e.State == EntityState.Added);
myDbContext.ChangeTracker.Entries().Where(e => e.State == EntityState.Deleted);
myDbContext.ChangeTracker.Entries().Where(e => e.State == EntityState.Modified);


Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow