2009-05-14 6 views
0

1 개의 많은 관계가있는 Order 및 OrderItem이라는 두 개의 테이블이 있습니다.SubSonic에서 관련 개체 저장

프런트 엔드에 새 주문을 추가 할 때 관계를 만드는 방법. 예 :

: 나는 데이터베이스에 저장할 때이

item.setParent(order); 

편집의 라인을 따라 뭔가를 올바른 외래 키 값을 저장할 수 있도록 그때의 관계를 어떻게 설정합니까

(Order and OrderItem generated by SubSonic). 
Order order = new Order(); 
//populate order details. 


OrderItem item = new OrderItem(); 
//populate orderItem details. 

사용해 보았습니다.

order.OrderItemRecords().Add(item); 

그러나 DB를 업데이트 할 때 여전히 오류가 발생합니다.

답변

3
(Order and OrderItem generated by SubSonic). 
Order order = new Order(); 
//populate order details. 


OrderItem item = new OrderItem(); 
//populate orderItem details. 

item.Order = order; //THIS LINE SETS THE PARENT OBJECT TO ABOVE ORDER 

트랜잭션에서 마무리하고 save 메소드를 호출하여이 정보를 데이터베이스에 커밋해야합니다. 프로젝트의 System.Transactions 네임 스페이스에 대한 참조를 추가 한 다음 클래스에서 참조합니다.

예컨대

using (TransactionScope scope = new TransactionScope()) 
    { 
     try 
     { 
      Order order = new Order(); 
      //populate order details. 
      order.Save(); //Commit to DB 


      OrderItem item = new OrderItem(); 
      //populate orderItem details. 

      item.Order = order; //THIS LINE SETS THE PARENT OBJECT TO ABOVE ORDER 

      item.Save(); //Commit to DB 

      //complete you transaction 
      scope.Complete(); 

     } 
     catch (System.Data.SqlClient.SqlException ex) 
     { 
      throw ex; 
     } 
    }