문제

많은 순서가있는 주문 매핑이 있습니다. 매핑은 순서 만 저장 할 때 순서와 순서를 데이터베이스에 올바르게 저장하지만 해당 순서를 다시로드 할 때 순서가 포함 된 순서 목록은 널 값으로 채워집니다 (모든 순서 항목의 경우. 표) 주문의 외국 키가있는 순서에 도달 할 때까지. 따라서 NULL 주문 항목의 총 카운트는 OrderItems 테이블의 행 카운트입니다 (주문과 관련된 실제 주문 항목). 내 매핑은 다음과 같습니다.

주문하다:

<list name="OrderItems" table="OrderItems" cascade="all" inverse="true" >
  <key column="OrderID"/>
  <index column="OrderItemID" />
  <one-to-many class="OrderItem" not-found="ignore" />
</list>

순서 :

<many-to-one name="Order" class="Order" column="OrderID" not-null="true" />

주문의 수업 구현은 다음과 같습니다.

public class Order : {
    private IList<OrderItem> orderItems = new List<OrderItem>();

Nhibernate는 목록이 관계의 많은 부분으로 목록을 지원하지 않지만 저장은 부하가 아닌 올바르게 작동합니다. 이것이 작동하기 위해 모든 것을 세트로 변환해야합니까?

도움이 되었습니까?

해결책

내 머리 꼭대기에 문제가있는 것을 기억합니다.

<list> 

그리고 의지

<bag> 

대신 .NET ILIST 인터페이스에 매핑합니다. 그것이 당신의 문제를 해결할 것인지 확실하지 않습니다.

도움이 될 수있는 것은 데이터베이스에 도달하는 실제 SQL이 Console.out (Console.out)에 로깅을 활성화하여 기대하는 것과 어떻게 다른지 보는 것입니다.이 블로그를 참조하십시오)

다른 팁

OrderItems 컬렉션이 게으른로드 되었기 때문에 이것이 발생하지 않습니까? 목록 (또는 백) 매핑에 Lazy = False를 지정하면 더 이상 그렇지 않습니다.

문제는 순서를 게으른로드하고 싶습니까? :)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top