我通过标记EntityState.Deleted;
来删除具有硬删除功能的实体
我还在数据库表中启用了CDC。
如何通过实体框架捕获从应用程序删除的内容?
我尝试设置Deletedby值。但是,然后实体状态处于“已删除”状态,更新后的值未反映在表中。请不要建议先更新“ deletedby”列值,然后再执行实际删除。
答案 0 :(得分: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
}
}