Как я могу увидеть ожидающие изменения Entity Framework?

.net c# entity-framework

Вопрос

Я создаю приложение с помощью ADO.NET Entity Framework.

Я могу построчно просматривать свой код во время отладки и наблюдать за SQL Server Profiler для каждого выполняемого запроса, но я не могу понять, откуда поступают все эти команды SQL!

Иногда, когда я выполняю SaveChanges() , Entity Framework выполняет неожиданные, странные INSERTS. Они иногда ломают приложение. Я не могу понять, что я делаю, чтобы вызвать их.

Как я могу отслеживать ожидающие изменения, которые стоят в очереди в ожидании вызова SaveChanges() ?

Популярные ответы

Начиная с Entity Framework 5.0, DbContext имеет свойство ChangeTracker котором есть все ожидающие изменения. Подобно 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);


Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow