J'utilise nopcommerce pour ma boutique en ligne et j'utilise des tâches qui obtiennent des informations d'un système externe lorsqu'une commande a été expédiée. Quand il est expédié, je veux capturer le paiement, puis le définir comme livré. Cependant, je continue à recevoir des erreurs EF. Un moyen de contourner cela pour le moment? Je dois le mettre en marcheNopCommerce EF Problèmes
Un objet d'entité ne peut pas être référencé par plusieurs instances de IEntityChangeTracker.
Voir mon code ci-dessous:
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);
}
Oui, je sais. Le problème est que c'est le propre gestionnaire de contexte de nop qui cause les problèmes –
Donc, si leur contexte est toujours là, attrapez et réutilisez ... .... ou clonez l'objet entité – KristoferA
Je pense, je ne peux pas aider beaucoup, mais un extrait de l'article suivant indique que GetEntityById ne doit pas être utilisé. Toutes les chances que vous utilisiez ceci dans la classe PBSManager. http://www.nopcommerce.com/fr/boards/t/6677/custom-task-and-entity-framework-exception.aspx – Hps