如何查看实体框架的待定更改?

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


Related

许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow