违反 ASP.net MVC 中更新的 UNIQUE KEY 约束
有人可以检查一下这段代码吗?我真的不明白为什么当我尝试更新记录时会违反唯一性。用于创建新记录的代码工作得很好,但是当我尝试使用它来更新时,它指出了违规。
控制器:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(User user)
{
if (ModelState.IsValid)
{
userRepository.SaveUser(user);
return RedirectToAction("List");
}
else
return View("Edit");
}
userRepo:
public void SaveUser(User user)
{
user.LAST_ACTIVITY = DateTime.Now;
if (user.USER_ID != 0)
{
usersTable.Attach(user);
usersTable.Context.Refresh(RefreshMode.KeepCurrentValues, user);
}
else
{
usersTable.InsertOnSubmit(user);
}
usersTable.Context.SubmitChanges();
}
我收到错误:
无法刷新指定的 目的。该对象不再存在 在数据库中。
当我尝试像这样更改 userRepo 以便进行测试时。
public void SaveUser(User user)
{
user.LAST_ACTIVITY = DateTime.Now;
usersTable.Attach(user);
usersTable.Context.Refresh(RefreshMode.KeepCurrentValues, user);
usersTable.Context.SubmitChanges();
}
我想知道这个板上是否有人可以找出我在这个问题上的某个地方是否错了:)。
非常感谢您并祝愿您最诚挚的问候。 :)
Can someone please check out this code, i really dont understand why i got violation of unique when i try to update an record. the code used to create new record work just fine, but when i try to use it to update, it called out violation.
Controller:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(User user)
{
if (ModelState.IsValid)
{
userRepository.SaveUser(user);
return RedirectToAction("List");
}
else
return View("Edit");
}
userRepo:
public void SaveUser(User user)
{
user.LAST_ACTIVITY = DateTime.Now;
if (user.USER_ID != 0)
{
usersTable.Attach(user);
usersTable.Context.Refresh(RefreshMode.KeepCurrentValues, user);
}
else
{
usersTable.InsertOnSubmit(user);
}
usersTable.Context.SubmitChanges();
}
and i got an error:
Unable to refresh the specified
object. The object no longer exists
in the database.
when i try to change the userRepo like this for testing purpose.
public void SaveUser(User user)
{
user.LAST_ACTIVITY = DateTime.Now;
usersTable.Attach(user);
usersTable.Context.Refresh(RefreshMode.KeepCurrentValues, user);
usersTable.Context.SubmitChanges();
}
Im wondering if there anyone on this board can find out if i am wrong somewhere in this problem :).
Thank you very much and wish you best regard. :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
看起来您有冲突需要解决,即使您告诉它“KeepCurrentValues”,请在提交更改之前尝试此操作...
Looks like you have conflicts to resolve even though you're telling it to "KeepCurrentValues", try this before the submit changes...
忽略模型绑定上的 ID。
善良,
丹
Ignore ID on your model binding.
Kindness,
Dan