如何设置删除功能以激活数据库中的值

时间:2016-06-24 08:15:45

标签: c# asp.net-mvc delete-row

我的控制器上有删除功能。我的功能从数据库删除,我工作正常,但现在我不希望它从数据库中永久删除,但只是将其设置为活动而不显示它。但是在数据库上它将存在。

我有一个名为Active的列,它是1.我怎样才能使它成为活动而不是永久删除它。

这是控制器上的代码;

    public ActionResult Deletefunction(Part model)
    {
        try
        {
            using (dbContext db = new dbContext())
            {
                Part del = db.Parts.Where(c => c.id == model.PartId).FirstOrDefault();
                db.Parts.Remove(del);
                db.SaveChanges();
            }
            return View();
        }
        catch (Exception ex)
        {
            throw ex;
        }

    }

感谢您提前帮助。

1 个答案:

答案 0 :(得分:0)

假设您的Part对象上有一个名为Active的列。您只需将删除语句更改为更新;

   public ActionResult Deletefunction(Part model)
    {
        try
        {
            using (dbContext db = new dbContext())
            {
                Part del = db.Parts.Where(c => c.id == model.PartId).FirstOrDefault();
                // Changed from Delete to update
                del.Active = 0;
                db.SaveChanges();
            }
            return View();
        }
        catch (Exception ex)
        {
            throw ex;
        }

    }

请注意,无论您在何处显示这些内容,如果您不想显示不活动的内容,您都必须添加where子句,例如;

var onlyActiveParts = db.Parts.Where(p => p.Active == 1);