我正在尝试使用TryUpdateModel来限制编辑方法更新的属性。
我希望用户查看“编辑”表单中的所有字段,但不希望更新“影集”实体的“标题”属性。所以我这样做:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit()
{
var album = new Album();
TryUpdateModel(album, new[] { "Price","Date","Genre"});
if (ModelState.IsValid)
{
db.Entry(album).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}.....
执行此代码时,我在db.SaveChages()上出错,其中说:
存储更新,插入或删除语句会影响意外 行数(0)。自那以后,实体可能已被修改或删除 实体已加载。看到 http://go.microsoft.com/fwlink/?LinkId=472540了解有关的信息 理解和处理乐观并发异常。
我在这里做错了什么?
答案 0 :(得分:0)
基本上,它说你的更新修改了0行。因此,您的主键(无论使行唯一)指向数据库中不存在的ID。您需要弄清楚为什么会发生这种情况,而是使用数据库中存在的密钥。