我的项目使用软删除,但我不应该使用软删除一个数据库表。我希望在数据库表中删除此行。我的软删除功能确实检查"实体状态"并在此记录中添加已删除单元格的当前日期。
我想添加新的实体状态枚举。怎么能做到这一点?
var deletedEntities = ChangeTracker.Entries().Where(e => e.State == EntityState.Deleted).ToList();
deletedEntities.ForEach(e =>
{
try
{
e.Property("DeletedAt").CurrentValue = DateTime.Now;
e.State = EntityState.Modified;
}
catch (System.Exception)
{
}
});
添加新的状态值不是正确的操作过程,创建一个新的接口,例如 ISoftDeletable 并使用它过滤实体
var deletedEntities = ChangeTracker.Entries().Where(e => e.State ==
EntityState.Deleted && e.Entity is ISoftDeletable).ToList();
deletedEntities.ForEach(e =>
{
try
{
e.Property("DeletedAt").CurrentValue = DateTime.Now;
e.State = EntityState.Modified;
}
catch (System.Exception)
{
}
});