我在 CMS 中有一个基本的 CRUD,使用 EF 并且首先使用数据库完成,删除功能只是从数据库中删除记录。
以下是删除的控制器代码:
public ActionResult Delete(int id)
{
Database_Table database_table = db.Database_Table.Find(id);
return View(database_table);
}
[HttpPost, ActionName("Delete")]
public ActionResult DeleteConfirmed(int id)
{
Database_Table database_table = db.Database_Table.Find(id);
db.Database_Table.Remove(database_table);
db.SaveChanges();
return RedirectToAction("Index");
}
protected override void Dispose(bool disposing)
{
db.Dispose();
base.Dispose(disposing);
}
}
现在从客户的角度来看,出于安全原因,我不想实际从数据库表中删除条目,我只想更改数据库中的一个值,即“已删除,从“N”到“Y”,然后我将隐藏它,则不会通过自定义查询显示值为“Y”的条目。如果这是有道理的。我的问题是如何更改此代码以不删除,而只是更改该值。
我觉得它看起来像:
[HttpPost, ActionName("Delete")]
public ActionResult DeleteConfirmed(int id)
{
if (ModelState.IsValid)
{
Database_Name database_name = db.Database_Name.Find(id);
db.Entry(database_name).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(database_table);
}
但我不确定在哪里定义它只有一个将被修改的值,在这种情况下是“已删除”值。也许还说它应该只返回视图一个值为“N”的条目