EntityState.Deleted;
我通过标记我也在数据库表中启用了 CDC 来删除具有硬删除的实体。
如何通过实体框架从应用程序中捕获deletedby?
我试图设置 deletedby 值。但随后实体状态处于“已删除”状态,更新后的值未反映在表中。请不要建议先更新 'deletedby' 列的值,然后再执行真正的删除。
EntityState.Deleted;
我通过标记我也在数据库表中启用了 CDC 来删除具有硬删除的实体。
如何通过实体框架从应用程序中捕获deletedby?
我试图设置 deletedby 值。但随后实体状态处于“已删除”状态,更新后的值未反映在表中。请不要建议先更新 'deletedby' 列的值,然后再执行真正的删除。
似乎您想要使用 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
}
}