1
这一个我今天有一个奇怪的。LINQ 2 SQL查询ObjectDisposed异常
我在装配方法中有这个查询。
public Order[] SelectAllOrders()
{
Order[] orders;
using (MyDataContext context = new MyDataContext())
{
DataLoadOptions dlo = new DataLoadOptions();
dlo.LoadWith<Order>(order => order.OrderDetails);
context.LoadOptions = dlo;
orders = context.Orders.Select(p => p).ToArray();
}
return orders;
}
认为我已经叫ToArray的()SQL命令执行,给我我需要的对象,我给他们一个新的秩序[]数组这应该不需要DataContext的实例。 虽然我序列化从订单[]我从方法返回,串行器试图再次访问DataContext,我得到一个异常,无法访问处置对象。
尝试没有使用()语句,并应该像它应该。但是,为什么我得到这种行为? 任何人都可以解释为什么在我调用.ToArray()并为内容分配新变量时,延迟加载仍然存在?
Marc,thanx for回答,我不记得如何在输出窗口中显示SQL查询以避免Console项目测试,找不到它:P。所以,创建了控制台,你是对的,我愚蠢的忘记了关联OrderDetails 1 - *产品。答案是LoadWith(od => od.Product),它的一切都很好。谢谢.... –
2009-12-16 13:18:09