撤消最后数据库保存完成的更改



当我按下按钮时,jQuery使用ajax删除项目,但是我有可能制作一个可以"删除"刚刚发生的删除的函数吗?

我的删除控制器

    [HttpPost]
    public void DeleteProject(int Id)
    {
        var Item = from a in db.Project
                   where a.ProjectId.Equals(Id)
                   select a;
        Project SelectedProject = Item.FirstOrDefault();
        ICollection<ProjectProfile> Profiles = SelectedProject.ProjectProfile;
        ICollection<Member> Members = SelectedProject.Member;
        db.Member.RemoveRange(Members);
        db.ProjectProfile.RemoveRange(Profiles);
        db.Project.Remove(SelectedProject);
        db.SaveChanges();
        RedirectToAction("Index", "Projects");
    }

有几种方法可以做到这一点。总体而言,提供明确的解决方案有点广泛,但以下是一些想法:

  • 您可以创建一个将在一定时间内运行的任务,而不是立即删除,该任务将在一定时间内完成删除。说,10秒。在10秒钟内,您会显示一个"撤消"按钮,该按钮将从运行SaveChanges()取消该任务。
  • 您可以将您要在临时表中删除的项目缓存并还原
  • 您可以在表格中添加IsDeleted位,并用它来表示已删除记录已被删除,该记录可以随意翻转为" Un-Delete"。

最新更新