2012-11-26 61 views
0

实体可以找到对象并可以设置它的属性,但它会抛出“该对象无法删除,因为它在ObjectStateManager中找不到”。当我尝试删除它时例外。 你可以看到我的故事属于图片。如你所见,对象不是null,实体可以找到它。实体可以找到对象但它不能删除它

enter image description here

我可以看到whicgh我想在上下文中删除的对象。

enter image description here

你对此有什么建议吗?

感谢,

+0

你是如何从数据库中检索实体?看起来该实体没有被追踪。你使用'AsNoTracking()'方法吗? –

+0

我使用以下代码检索:using(var context = new eTicaretEntity()) { return context.carts.FirstOrDefault(x => x.CartGuid == cartGuid && x.ProductId == productId && x.ProductTypeId == productTypeId); } – cagin

+0

您需要使用相同的上下文来删除实体,以便上下文可以跟踪它。尝试将代码删除使用语句中的实体 –

回答

0

的问题是,你所得到的实体后处置权的背景下。通过这种方式,实体框架无法追踪对该实体发生的变化。 尝试把删除代码的使用语句中:

using (var context = new eTicaretEntity()) 
{ 
    var cart = context.carts.FirstOrDefault(x => 
     x.CartGuid == cartGuid && 
     x.ProductId == productId 
     && x.ProductTypeId == productTypeId); 

    // delete entity here 
    // ..... 
} 
+0

是的,它现在有效。谢谢.. – cagin

+0

不客气:) –

相关问题