【发布时间】:2013-03-07 07:23:34
【问题描述】:
我一直在调试这个程序,没有任何结果,很遗憾我看不到问题的根源。我得到了这个异常:ObjectContext 实例已被释放,不能再用于需要连接的操作。
有 2 个表: - 客户集 - 订单集
Orders 表中名为 Customer_id 的字段确保了表之间的关系,Orders 表中还有一个名为 Customer 的虚拟导航属性。
场景如下: 我在 Orders 表中插入一个元素:
Order order = new Order();
Order.order_id = GenerateId(IdType.Order);
Order.date = DateTime.Now;
Order.Customer_id = GetCustomerId(tbCustomerName.Text);
Insert(order);
在 Insert 方法中,在 using 语句中有 DBContext,因此它会在需要时自动释放。我在里面工作。
之后,我需要来自先前插入的元素的数据(例如,我需要 Customer 字段的一些属性)。 现在我希望 Customer 字段获得价值:
Order o = GetOrder(order.order_id);
我得到了这个 o,但在 Customer 字段中有一个异常:o.Customer 抛出了“System.ObjectDisposedException”类型的异常
我正在玩延迟加载,打开或关闭它,但我没有解决。情况是一样的……
我要搞砸什么?
真正的好处是,如果我一步一步按 F11,它通常可以正常工作!
请帮忙!提前谢谢你。
【问题讨论】:
-
您需要发布代码的更多详细信息,但不知道如何以及何时获取 DbContext 对象,就不可能知道发生了什么。
标签: c# frameworks entity objectcontext objectdisposedexception