我正在为我的网上商店使用nopcommerce,并且我正在使用在订单发货时从外部系统获取信息的任务。发货时,我想捕获付款,然后将其设置为发货。但是,我不断收到EF错误。现在有什么办法可以解决这个问题?我需要启动它并运行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);
}
是的,我知道。问题是,它是nop自己的上下文管理器,导致问题 – 2010-11-26 14:36:19
因此,如果他们的上下文仍然在,抓住并重用它......或克隆实体对象 – KristoferA 2010-11-26 14:53:14