0

尝试删除记录时出现错误:

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

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

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

任何想法为什么?

4

1 回答 1

2

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

使用实体框架,您使用的 DbContext 必须知道它正在作用的对象。看起来您以某种方式创建了客户,而不是将其加载到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

专门针对您的情况,将现有实体附加到上下文中

更新(基于您的更新)

您最初是如何创建客户的?如果没有这些细节,就只能猜测为什么它完全是空的。

于 2012-07-29T03:25:40.433 回答