1

EntityState.Deleted; 我通过标记我也在数据库表中启用了 CDC 来删除具有硬删除的实体。

如何通过实体框架从应用程序中捕获deletedby?

我试图设置 deletedby 值。但随后实体状态处于“已删除”状态,更新后的值未反映在表中。请不要建议先更新 'deletedby' 列的值,然后再执行真正的删除。

4

1 回答 1

0

似乎您想要使用 EF 进行审计跟踪。

我建议在您的 saveChanges 方法上执行所需的功能。

如果您使用的是 context.SaveChanges(),我建议您覆盖它。

public class YourContext
{
   public override int SaveChanges()
   {
      AuditDeletedEntries();
      base.SaveChanges();
   }

   private void AuditDeletedEntries()
   {

            ChangeTracker.Entries<yourclassType>().Where(x => x.State == EntityState.Deleted).ToList().Select(x => x.Entity) as List<yourclassType>;

      // write changes to your database
   }
}
于 2018-08-16T08:02:14.557 回答