gpt4 book ai didi

c# - 编辑 ID - 存储更新、插入或删除语句影响了意外的行数 (0)

转载 作者:太空宇宙 更新时间:2023-11-03 20:21:00 25 4
gpt4 key购买 nike

所以我需要能够在我的编辑页面中连续编辑我的主键字段,我得到了错误

Store update, insert, or delete statement affected an unexpected number of rows (0). Entities may have been modified or deleted since entities were loaded. Refresh ObjectStateManager entries.

当我不更改主键字段时,我可以将所有其他更改保存到我的数据库中。

这是我的编辑功能。

//edit - post
[HttpPost]
public ActionResult ActiveCampaignsEdit(ActiveCampaign activecampaign)
{
try
{
if (ModelState.IsValid)
{
db.Entry(activecampaign).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("ActiveCampaigns");
}
}
catch (DataException err)
{
//Log the error (add a variable name after DataException)
ModelState.AddModelError(string.Empty, err.Message);
}
ViewBag.TypesList = new SelectList(db.Types, "TypeId", "TypeName");
ViewBag.CaptureFormsList = new SelectList(db.CaptureForms, "Id", "Name");
ViewBag.AssignedUsersList = new SelectList(db.Users, "Id", "Username");
return View(activecampaign);
}

我将如何编辑主键,或者我是否以错误的方式处理此问题?

最佳答案

当使用像 Entity Framework 这样的 ORM 时,UPDATE 命令基本上是这样组成的:

UPDATE table 
SET ChangedCol = ChangedVal
WHERE PrimaryKeyCol = PrimaryKeyValAtLoadTime

然后它会检查受影响的行数以匹配预期值。

因此,当您尝试更改 PK 时,更新命令将不会更新任何行并且检查将失败。

真正的问题是:为什么要更改主键值?

关于c# - 编辑 ID - 存储更新、插入或删除语句影响了意外的行数 (0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13586995/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com