MVC麻烦删除记录

时间:2012-07-29 03:17:15

标签: asp.net-mvc entity-framework

尝试删除记录时出错:

InvalidOperationException - 无法删除对象,因为在ObjectStateManager中找不到该对象。

public ActionResult Delete(CustomerModel customer)
        {
            db.Customer.Remove(customer);
            db.SaveChanges();
            return View();
        }

更新:我检查了bebugger,客户完全是空的......因此数据库无法删除该特定记录。

任何想法为什么?

1 个答案:

答案 0 :(得分:2)

您的客户对象未加载到名为 db 的DbContext中(我假设它是DbContext ...从您的代码中并不完全清楚)。

使用Entity Framework,您使用的DbContext必须知道它正在作用的对象。看起来您以某种方式创建了 customer ,而不是将其加载到 db

您可以将它添加到DbContext中,如下所示:

db.Attach(customer);

然后,继续将其删除并保存更改。

有关详细信息,请参阅

http://blogs.msdn.com/b/adonet/archive/2011/01/29/using-dbcontext-in-ef-feature-ctp5-part-4-add-attach-and-entity-states.aspx

特别针对您的情况,段落将现有实体附加到上下文

更新(根据您的更新)

您是如何创建客户的?没有这些细节,只需要猜测它为何完全是空的。