2010-11-26 4 views
1

웹 쇼핑몰에 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); 
      } 

답변

0

난 그냥 아마 당신이 OrderManager 클래스의 또 다른 컨텍스트를 만드는 것으로 추측하고있다. 동일한 컨텍스트를 사용해야합니다.

이 링크는 HttpContext에에서 현재 컨텍스트를 저장 nopCommerce하지 않습니다 어떤 도움

Multiple instances of context

+0

그래, 알아. 문제는 nop의 컨텍스트 관리자가 문제를 일으키는 것입니다. –

+0

컨텍스트가 아직 남아있는 경우 잡아서 다시 사용하십시오. ... ... 또는 엔티티 개체를 복제하십시오. – KristoferA

+0

나는 많은 도움을 줄 수 없다고 생각합니다. 다음 기사에서 발췌 한 내용에 따르면 GetEntityById를 사용해서는 안됩니다. PBSManager 클래스 내부에서 사용할 수 있습니다. http://www.nopcommerce.com/boards/t/6677/custom-task-and-entity-framework-exception.aspx – Hps

0

될 수 거기에서 찾고 시도?

+0

httpcontext에 아무런 문맥이 없습니다. 문제가 있습니다. –

+0

정말 죄송합니다. 작업을 사용하는 일부 플러그인이나 다른 코드를 잡으려고 시도 했습니까? 그들이 이런 유형의 상황을 어떻게 다루는 지 알고 싶습니까? –

+0

감사하지만이 문제는 이미 해결되었습니다. 오래 전 이었어. –