ウェブショップで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);
}
ええ、私は知っています。問題はそれが問題を引き起こすのはノップ自身のコンテキストマネージャーであるということです。 –
そのコンテキストがまだ周囲にある場合、それをつかんで再利用してください.... ...またはエンティティオブジェクトをクローンしてください – KristoferA
私は、次の記事の抜粋によれば、GetEntityByIdは使用しないでください。 PBSManagerクラス内でこれを使用している可能性があります。 http://www.nopcommerce.com/boards/t/6677/custom-task-and-entity-framework-exception.aspx – Hps