回收站

本文介绍 EasyAdminBlazor 的回收站(软删除)能力:删除不物理删除、可恢复、可彻底删除。

功能概述

  • 软删除:实现 IEntitySoftDelete 的实体(继承 EntityFull 系列)被删除时,只会把 IsDeleted 置为 true,记录仍在数据库中。
  • 自动过滤:全局过滤器会自动排除已软删除的数据,正常列表、查询、统计都看不到删掉的记录。
  • 回收站入口:管理页面(AdminTable)工具栏提供「回收站」开关,只有软删除实体才会出现这个入口。
  • 可恢复:回收站中可以把记录恢复回正常列表。
  • 彻底删除:确认后才会真正从数据库删除,避免误操作。

使用方法

1. 让实体支持软删除

实体继承 EntityFull(或实现 IEntitySoftDelete)即可:

public class Product : EntityFull
{
    public string Name { get; set; } = string.Empty;
}

2. 删除记录

在管理页面正常点击删除,记录会进入回收站,而不是从数据库消失。

3. 打开回收站

页面工具栏点击「回收站」,列表切换为只显示已软删除的记录;再点一次退出回收站,回到正常列表。

4. 恢复或彻底删除

  • 恢复:选中记录后点击恢复,IsDeleted 置回 false,记录重新出现在正常列表。
  • 批量还原:回收站支持多选后批量恢复。
  • 彻底删除:需要二次确认,确认后记录才会从数据库中物理删除,无法再恢复。

界面说明

  • 工具栏回收站开关:进入/退出回收站模式;回收站模式下会隐藏新增、导入等入口,避免误操作。
  • 回收站列表:只显示已删除记录,操作列提供恢复与彻底删除。
  • 二次确认:彻底删除会弹出确认提示。

注意事项

  • 回收站是 AdminTable 的内置能力,页面无需额外开发,实体支持软删除即可。
  • 未实现软删除的实体被删除时是物理删除,不会进入回收站。
  • 回收站数据仍占用数据库空间,需要清理时使用「彻底删除」。