我的控制器上有删除功能。我的功能从数据库删除,我工作正常,但现在我不希望它从数据库中永久删除,但只是将其设置为活动而不显示它。但是在数据库上它将存在。
我有一个名为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;
}
}
感谢您提前帮助。
答案 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);