在我的项目中,我正在重写实体saveChanges()方法,如下所示。
public override int SaveChanges()
{
foreach (var entity in ChangeTracker.Entries()
.Where(p => p.State == EntityState.Added || p.State == EntityState.Deleted || p.State == EntityState.Modified))
{
// Logs
}
return base.SaveChanges();
}
但是,ChangeTracker.Entries()表示非公开成员。这不是一个错误,但我必须采取记录的值。因为ChangeTracker.Entries()count = 0,所以我无能为力。我正在使用Entityframework 6.0 Thnks。
答案 0 :(得分:1)
实体框架仅在公共属性映射到数据库字段时跟踪更改。
如果要跟踪对象的更改,则需要更改公共属性。
在使用documentation中提到的ChangeTracker.DetectChanges()
之前,您还应该致电ChangeTracker.Entries()
。
编辑:添加了关于ChangeTracker.DetectChanges()