如何查看實體框架的待定更改?

.net c# entity-framework

我正在使用ADO.NET實體框架創建一個應用程序。

我可以在調試時逐行瀏覽我的代碼,並為每個執行的查詢觀察SQL Server Profiler,但我無法弄清楚所有這些SQL命令的來源!

有時當我執行SaveChanges() ,實體框架執行意外的,奇怪的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);


許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因