试图在这里掌握实体框架,但我遇到了一些障碍......
我有一个 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
,或者该对象是独立创建的(可能是反序列化的)。
为了删除它,它必须知道它first。这可能意味着附着对经理来说是一个对象 - 但在这种情况下,似乎一个更简单的选择就是通过db
into Get
, 所以这样Get
是在相同的上下文中完成的(因为db
将自动附加它自己创建的对象)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)