当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《错误:无法删除对象,因为在ObjectStateManager中找不到该对象》经验,为你挑选了1个好方法。

试图在这里获得实体框架的处理,我遇到了一些速度障碍...我有一个Get()方法工作正常并且已经过测试,但我的Delete方法不起作用:

   public static void Delete(string name)
    {
        J1Entities db = new J1Entities();
        db.DeleteObject(Get(name));
        db.SaveChanges();
    }

但是我收到以下错误: 错误:无法删除该对象,因为在ObjectStateManager中找不到该对象.

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



1> Marc Gravell..:

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

为了把它删除,就必须了解它第一次.这可能意味着一个对象附加到管理器 - 但在这种情况下,似乎更简单的选择就是db传入Get,以便Get在相同的上下文中完成(因为db它将自动附加它自己创建的对象).

推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有