【发布时间】:2014-06-16 11:48:25
【问题描述】:
当我将关系声明为拆分表时,从实体框架中删除关系时遇到问题。
基本上我需要一些代码来检查实体是否由相同的上下文加载。下面的检查不起作用。
var data = new ProductItemData() { Id = pv.ProductItems[i].Id };
if (m_Context.ProductData.Where(w => w.Id == data.Id).Count() == 0)
{
m_Context.ProductData.Attach(data);
}
m_Context.ProductData.Remove(data);
当它没有在相同的上下文中加载时,即数据已经从数据库中延迟加载,我正确地得到了这个错误
无法删除该对象,因为它在 对象状态管理器。
并且当item在同一个上下文中并且attach()方法被执行时。我收到此错误
ObjectStateManager 中已存在具有相同键的对象。 ObjectStateManager 无法使用相同的 key 跟踪多个对象
有人对我能做的支票有什么想法吗?
我认为它忽略了我所做的任何检查..当我重新加载上下文时它会很好地删除它,但在相同的上下文中,它总是转到附加代码
谢谢
【问题讨论】:
标签: c# entity-framework