C# nopef问题

C# nopef问题,c#,entity-framework,nopcommerce,C#,Entity Framework,Nopcommerce,我正在为我的网络商店使用nopcommerce,我正在使用在订单发货时从外部系统获取信息的任务。发货时,我希望捕获付款,然后将其设置为已发货。然而,我不断得到EF错误。现在有什么办法解决这个问题吗?我需要让它启动并运行 一个实体对象不能被多个IEntityChangeTracker实例引用 请参见下面的我的代码: int orderId = PBSManager.GetOrderIdByCustomOrderNumber(customOrderNumber);

我正在为我的网络商店使用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);
            }

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

这个链接有什么帮助吗


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

是的,我知道。问题是,是nop自己的上下文管理器导致了问题。因此,如果上下文仍然存在,请抓住并重用它。。。或者克隆实体object我想,我帮不了什么忙,但是下面文章的一段摘录说,不应该使用GetEntityById。您可能正在PBSManager类中使用此选项的任何可能性。但是获取其上下文的唯一方法是使用ObjectContextHelper.CurrentObjectContext,这会导致此错误。还有Hps,我没有使用GetEntityById。我在nopcommerce上读了所有这些帖子,它们似乎都有相同的问题,但没有解决方案httpcontext中没有上下文,这就是问题所在。对这一点很抱歉,您是否尝试过获取一些插件或其他也使用任务的代码,看看它们如何处理这种情况?