gpt4 book ai didi

c# - 错误 : The object cannot be deleted because it was not found in the ObjectStateManager

转载 作者:可可西里 更新时间:2023-11-01 08:41:50 26 4
gpt4 key购买 nike

试图在这里处理 Entity Framework ,但我遇到了一些减速带......我有一个 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 会自动附加它自己创建的对象)。

关于c# - 错误 : The object cannot be deleted because it was not found in the ObjectStateManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/449740/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com