2010-11-26 4 views
1

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); 
      } 

Répondre

0

Je suis juste deviner que probablement vous créez un autre contexte dans la classe OrderManager. Vous devriez utiliser le même contexte.

ce lien peut être de toute aide

Multiple instances of context

+0

Oui, je sais. Le problème est que c'est le propre gestionnaire de contexte de nop qui cause les problèmes –

+0

Donc, si leur contexte est toujours là, attrapez et réutilisez ... .... ou clonez l'objet entité – KristoferA

+0

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

0

Ne pas stocker nopCommerce le contexte actuel dans le HttpContext, avez-vous essayé de chercher ce là-dedans?

+0

Il n'y a pas de contexte dans le httpcontext, c'est le problème –

+0

désolé à ce sujet, avez-vous essayé d'attraper des plugins ou d'autres codes qui utilisent également des tâches pour voir comment ils gèrent ce type de situation? –

+0

Merci, mais cela est déjà résolu. Était il y a longtemps –