返工删除功能以更改数据库值 ASP.Net
Posted
技术标签:
【中文标题】返工删除功能以更改数据库值 ASP.Net【英文标题】:Rework Delete Function to Change Databse Value ASP.Net 【发布时间】:2021-10-15 02:51:50 【问题描述】:我正在使用 ASP.Net 并使用 EntityFramework 来创建我的控制器。在控制器中有通常的 Delete 和 DeleteConfirmed 操作。我不希望用户实际删除记录,但不介意他们认为他们删除了记录。我的目标是修改删除确认记录,将我的 RecordEntry 表的 IsValid 列更改为 0 或 false,这意味着该记录被标记为无效而不是被删除。
这是 DeleteConfirmed 的代码。尚未编辑。
// POST: RecordEntry/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public async Task<IActionResult> DeleteConfirmed(int id)
var recordEntry = await _context.RecordEntry.FindAsync(id);
_context.RecordEntry.Remove(recordEntry);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
【问题讨论】:
还有什么问题?是什么阻止您只编辑代码? @Wiktor Zychla 我不知道怎么做。我知道我需要做 _context.RecordEntry.Update 而不是 .Remove 但我不知道还有什么 通过 id 从数据库中读取记录,更新要更新的属性,保存回来。见:docs.microsoft.com/en-us/ef/core/saving/basic 【参考方案1】:当您选择条目然后更改它的值时,您已经可以简单地将更改保存到数据库。
// POST: RecordEntry/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public async Task<IActionResult> DeleteConfirmed(int id)
var recordEntry = await _context.RecordEntry.FindAsync(id); // get entry
recordEntry.IsValid = false; // Edit entry
await _context.SaveChangesAsync(); // Save changes to db
return RedirectToAction(nameof(Index)); // Return response
如果您想了解更多,请参考这里 (How to update record using Entity Framework 6?)
【讨论】:
那是完美的。谢谢! 没问题,我很乐意提供帮助!以上是关于返工删除功能以更改数据库值 ASP.Net的主要内容,如果未能解决你的问题,请参考以下文章
如何获取 asp.net 身份以从数据库中获取对声明的更改?
ASP.NET Identity - 更改代码首先生成的数据库字段长度以提高性能