Wie kann ich die ausstehenden Änderungen von Entity Framework sehen?

.net c# entity-framework

Frage

Ich erstelle eine Anwendung mit dem ADO.NET Entity Framework.

Ich kann meinen Code beim Debuggen zeilenweise durchgehen und den SQL Server Profiler für jede ausgeführte Abfrage beobachten. Ich kann jedoch nicht herausfinden, woher all diese SQL-Befehle kommen!

Wenn ich SaveChanges() ausführen, führt das Entity Framework manchmal unerwartete, seltsame INSERTS aus. Sie brechen manchmal die Anwendung. Ich kann nicht herausfinden, was ich tue, um sie zu verursachen.

Wie kann ich die ausstehenden Änderungen überwachen, die in der Warteschlange auf einen Aufruf von SaveChanges() warten und warten?

Beliebte Antwort

Seit Entity Framework 5.0 verfügt DbContext über eine ChangeTracker Eigenschaft, die alle ausstehenden Änderungen enthält. Ähnlich wie beim ObjectStateManager können Sie Entitäten in verschiedenen Status wie folgt ObjectStateManager :

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);


Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum