我使用EF5,并且在我将此实体的唯一更改的PropertyValue设置回原始值之后,不知道为什么实体具有"已修改"状态.
using (TestDbContext context = new TestDbContext())
{
string name = context.Person.First().Name;
// count is 0
int count = context.ChangeTracker.Entries().Count(e => e.State == EntityState.Modified);
// Change Value
context.Person.First().Name = "Test";
// count is 1
count = context.ChangeTracker.Entries().Count(e => e.State == EntityState.Modified);
// Revert Value
context.Person.First().Name = name;
context.ChangeTracker.DetectChanges();
// count is 1
count = context.ChangeTracker.Entries().Count(e => e.State == EntityState.Modified);
}
Run Code Online (Sandbox Code Playgroud)
为什么?:(
是否可以获取有关修改历史表中数据的用户/连接的信息?我读到了可以使用时态表的审计场景,并且可以检测谁更改了数据.但是我该怎么做呢?