实体可以找到对象并可以设置它的属性,但它会抛出“该对象无法删除,因为它在ObjectStateManager中找不到”。当我尝试删除它时例外。 你可以看到我的故事属于图片。如你所见,对象不是null,实体可以找到它。实体可以找到对象但它不能删除它
我可以看到whicgh我想在上下文中删除的对象。
你对此有什么建议吗?
感谢,
实体可以找到对象并可以设置它的属性,但它会抛出“该对象无法删除,因为它在ObjectStateManager中找不到”。当我尝试删除它时例外。 你可以看到我的故事属于图片。如你所见,对象不是null,实体可以找到它。实体可以找到对象但它不能删除它
我可以看到whicgh我想在上下文中删除的对象。
你对此有什么建议吗?
感谢,
的问题是,你所得到的实体后处置权的背景下。通过这种方式,实体框架无法追踪对该实体发生的变化。 尝试把删除代码的使用语句中:
using (var context = new eTicaretEntity())
{
var cart = context.carts.FirstOrDefault(x =>
x.CartGuid == cartGuid &&
x.ProductId == productId
&& x.ProductTypeId == productTypeId);
// delete entity here
// .....
}
是的,它现在有效。谢谢.. – cagin
不客气:) –
你是如何从数据库中检索实体?看起来该实体没有被追踪。你使用'AsNoTracking()'方法吗? –
我使用以下代码检索:using(var context = new eTicaretEntity()) { return context.carts.FirstOrDefault(x => x.CartGuid == cartGuid && x.ProductId == productId && x.ProductTypeId == productTypeId); } – cagin
您需要使用相同的上下文来删除实体,以便上下文可以跟踪它。尝试将代码删除使用语句中的实体 –