C# 错误:无法删除该对象,因为在ObjectStateManager中找不到该对象

C# 错误:无法删除该对象,因为在ObjectStateManager中找不到该对象,c#,entity-framework,linq-to-entities,C#,Entity Framework,Linq To Entities,在这里尝试处理实体框架,我遇到了一些减速。。。 我有一个Get()方法,它工作得很好,并且已经过测试,但我的Delete方法不起作用: public static void Delete(string name) { J1Entities db = new J1Entities(); db.DeleteObject(Get(name)); db.SaveChanges(); } 但我得到了以下错误: 错误:无法删除对象,因为

在这里尝试处理实体框架,我遇到了一些减速。。。 我有一个Get()方法,它工作得很好,并且已经过测试,但我的Delete方法不起作用:

   public static void Delete(string name)
    {
        J1Entities db = new J1Entities();
        db.DeleteObject(Get(name));
        db.SaveChanges();
    }
但我得到了以下错误: 错误:无法删除对象,因为在ObjectStateManager中找不到该对象。


我运行了调试器,并且DeleteObject中的对象是正确的。。。我错过了什么?谢谢。

每个EF对象都与创建它的经理紧密关联(因为缺少更好的词)。或与之相关联的。由于您没有将
db
传递给
Get
方法,因此我假设
Get
使用了它自己的
J1Entities
,或者对象是独立创建的(可能是反序列化的)


要删除它,它必须首先知道它。这可能意味着将一个对象附加到管理器上——但在这种情况下,似乎更容易的选择是将
db
传递到
Get
,以便
Get
在相同的上下文中完成(因为
db
将自动附加它自己创建的对象)。

。。。我觉得这很简单……:)