我有以下方法:
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实例已被释放,无法再使用 对于需要连接的操作。
我不明白..我还没有把它添加到上下文中,它仍然给我这个错误?任何一个想法?
感谢 尼尔
答案 0 :(得分:1)
您是否在传递给该方法的AmazonLowestOfferListings
中加入amazonProduct
了吗?
EF可能正在尝试延迟加载该集合,这需要在此上下文中处置的连接。