实体框架错误:已经处理了ObjectContext实例

时间:2013-04-26 10:41:49

标签: c# entity-framework

我有以下方法:

    public void InsertOrUpdate(AmazonProduct amazonProduct)
    {
        var product = context.AmazonProducts
                        .Include(x => x.AmazonLowestOfferListings)
                        .Include(x => x.AmazonMyPrices)
                        .Include(x => x.AmazonProductCompetitivePrices)
                        .FirstOrDefault(p => p.ASIN == amazonProduct.ASIN);

        if (product == null)
        {
            // New entity
            context.AmazonProducts.Add(amazonProduct);
        }
        else
        {
            foreach (var lineItem in amazonProduct.AmazonLowestOfferListings)
            {
                context.AmazonLowestOfferListings.Add(lineItem);
            }

            context.Entry(product).CurrentValues.SetValues(amazonProduct);
        }
    }

但是就行了,

foreach (var lineItem in amazonProduct.AmazonLowestOfferListings)

它给了我错误:

  

ObjectContext实例已被释放,无法再使用   对于需要连接的操作。

我不明白..我还没有把它添加到上下文中,它仍然给我这个错误?任何一个想法?

感谢 尼尔

1 个答案:

答案 0 :(得分:1)

您是否在传递给该方法的AmazonLowestOfferListings中加入amazonProduct了吗?

EF可能正在尝试延迟加载该集合,这需要在此上下文中处置的连接。