¿Cómo puedo ver los cambios pendientes del Entity Framework?

.net c# entity-framework

Pregunta

Estoy creando una aplicación con ADO.NET Entity Framework.

Puedo revisar mi código línea por línea mientras depuro y ver el Analizador de SQL Server para cada consulta ejecutada, ¡pero no puedo averiguar de dónde provienen todos esos comandos SQL!

A veces, cuando ejecuto SaveChanges() , el Entity Framework realiza SaveChanges() extraños e inesperados. A veces rompen la aplicación. No puedo entender qué estoy haciendo para causarlos.

¿Cómo puedo monitorear los cambios pendientes que hacen cola esperando una llamada de SaveChanges() ?

Respuesta popular

Desde Entity Framework 5.0 DbContext tiene una propiedad ChangeTracker que tiene todos los cambios pendientes. Similar al ObjectStateManager , puede obtener entidades en varios estados de la siguiente manera:

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

Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow