質問: 私はADO.NET Entity Frameworkを使用してアプリケーションを作成しています。 デバッグ中にコードを1行ずつ実行し、実行されたすべてのクエリについてSQL Server Profilerを監視することはできますが、これらすべてのSQLコマンドがどこから来ているのかわかりません。 `SaveChanges()`を実行すると、Entity Frameworkが予期しない、奇妙なINSERTSを実行することがあります。彼らは時々アプリケーションを壊します。それらを引き起こすために私がしていることを理解することはできません。 `SaveChanges()`呼び出しを待ってキューに入っている保留中の変更を監視する方法を`SaveChanges()`ください。
回答: Entity Frameworkの5.0以来`DbContext`あり`ChangeTracker`プロパティ.aspx)のすべての保留中の変更があります。 `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); ```