1

我正在为我的网上商店使用 nopcommerce,并且我正在使用在订单发货时从外部系统获取信息的任务。发货时,我想获取付款,然后将其设置为已发货。但是,我不断收到 EF 错误。现在有什么办法解决这个问题吗?我需要启动并运行它

一个实体对象不能被多个 IEntityChangeTracker 实例引用。

请参阅下面的代码:

                int orderId = PBSManager.GetOrderIdByCustomOrderNumber(customOrderNumber);
            NopObjectContext db = ObjectContextHelper.CurrentObjectContext;
            Order order = db.Orders.SingleOrDefault(c => c.OrderId == orderId);
            //Incorrect order id    
            if (order == null)
            {
                //Skip this one if we cannot find the id
                continue;
            }
            if (OrderManager.CanCapture(order))
            {
                string error = string.Empty;
                OrderManager.Capture(order, ref error);
                if (!string.IsNullOrEmpty(error))
                {
                    PBSManager.HandleCaptureError(order, error);
                    return;
                }
            }
            if (OrderManager.CanShip(order))
            {
                OrderManager.Ship(order.OrderId, true);
            }
4

2 回答 2

0

nopCommerce 不会将当前上下文存储在 HttpContext 中,您是否尝试在其中查找它?

于 2012-02-01T16:54:31.957 回答
0

我只是猜测您可能正在 OrderManager 类中创建另一个上下文。您应该使用相同的上下文。

这个链接可以有任何帮助吗

上下文的多个实例

于 2010-11-26T14:35:28.980 回答