【发布时间】:2013-07-13 08:44:06
【问题描述】:
首先,我是一个初学者,当我试图通过将 id 通过视图传递给控制器来删除 sql 中的记录时,下面是我的代码:
注意:“用户名”是表“T_Users”中的 PK
#region Delete record function
public ActionResult Delete(string id ) {
T_Users temp_u = new T_Users() { Username = id };
//db.T_Users.Attach(new T_Users() { Username = id });
db.T_Users.Remove(temp_u);
try
{
db.SaveChanges();
//return View();
}
catch(Exception e) {
return Content("hehe");
}
return RedirectToAction("Index");
}
#endregion
当我调用 T_Users.Attach() 方法时,它说“ObjectStateManager 中已经存在具有相同键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象”
然后我评论说,它失败了,因为“无法删除对象,因为它在 ObjectStateManager 中找不到。”
谁能提供一些关于解决方案的想法?
【问题讨论】:
-
这个问题是关于 EF,而不是关于 ASP.NET MVC。您不应该使用 ID 创建对象,您应该获取它然后删除。
-
Mn.... 但我做了搜索,没有发现插入呢?没有对象,因为它是新的吧?
标签: asp.net asp.net-mvc-3 asp.net-mvc-4