2013-04-26 89 views
0

我有以下方法:實體框架錯誤:ObjectContext的實例已配置

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) 

它給我的錯誤:

The ObjectContext instance has been disposed and can no longer be used for operations that require a connection.

我沒有得到它..我還沒有把它添加到上下文中,它仍然給我這個錯誤?任何人有任何想法?

感謝 尼爾

+0

您是否在傳遞給該方法的'amazonProduct'中包含'AmazonLowestOfferListings'? EF可能試圖延遲加載該集合,該集合需要在此上下文中處理的連接。 – Drewman 2013-04-26 10:46:35

+0

我不能,因爲AmazonProduct僅僅是一個對象。如果你知道我的意思,我還沒有將它添加到上下文中? – 2013-04-26 10:49:18

+0

amazonProduct參數的值來自哪裏?它的上下文可能已經被處置,因此你不能枚舉它的AmazonLowestOfferListings – Netricity 2013-04-26 10:49:24

回答

1

是否包含在amazonProduct傳遞給方法AmazonLowestOfferListings

EF可能試圖延遲加載該集合,該集合需要在此上下文中處置的連接。