You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET MVC删除记录报错:影响行数异常问题求助

解决ASP.NET MVC中EF删除操作的"影响行数为0"错误

错误原因

这个报错是Entity Framework执行删除时找不到对应主键的数据库记录,常见原因包括:

  • 前端传递的实体主键值不正确或缺失
  • 目标记录已被其他操作删除
  • 直接使用未被上下文跟踪的实体执行删除操作

解决方案

方案1:先查询实体再删除(最可靠)

先通过主键从数据库获取实体,确认存在后再执行删除,避免操作不存在的记录:

[HttpPost]
public ActionResult Delete(int id) // 直接接收主键ID,而非完整实体
{
    var memberToDelete = _memberContext.tblMember.Find(id);
    if (memberToDelete != null)
    {
        _memberContext.tblMember.Remove(memberToDelete);
        _memberContext.SaveChanges();
        TempData["DeleteMessage"] = "<script>alert('Data Deleted')</script>";
    }
    else
    {
        TempData["DeleteMessage"] = "<script>alert('Record does not exist')</script>";
    }
    return RedirectToAction("MemberList");
}

注意:前端表单需传递主键id,比如用@Html.HiddenFor(m => m.Id)或路由参数传递。

方案2:使用仅含主键的无跟踪实体删除

如果不想查询数据库,可创建仅包含主键的实体,附加到上下文后标记删除:

[HttpPost]
public ActionResult Delete(tblMember objMember)
{
    if (objMember.Id <= 0) // 先校验主键有效性
    {
        TempData["DeleteMessage"] = "<script>alert('Invalid record ID')</script>";
        return RedirectToAction("MemberList");
    }

    var member = new tblMember { Id = objMember.Id };
    _memberContext.Entry(member).State = EntityState.Deleted;
    try
    {
        _memberContext.SaveChanges();
        TempData["DeleteMessage"] = "<script>alert('Data Deleted')</script>";
    }
    catch (DbUpdateConcurrencyException)
    {
        TempData["DeleteMessage"] = "<script>alert('Record does not exist or was already deleted')</script>";
    }
    return RedirectToAction("MemberList");
}

此方式需确保前端传递的objMember.Id是正确的数据库主键值。

方案3:检查前端数据传递

确保前端表单正确传递实体主键:

@using (Html.BeginForm("Delete", "Member", FormMethod.Post))
{
    @Html.HiddenFor(m => m.Id)
    <input type="submit" value="Delete" />
}

或通过路由参数传递主键:

@Html.ActionLink("Delete", "Delete", new { id = Model.Id }, new { onclick = "return confirm('Are you sure?');" })

对应Action方法需改为接收int id参数。

内容的提问来源于stack exchange,提问作者Sendy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 09:07:11