문제

나는 불리는 테이블이있다 제품 그리고 테이블이 있습니다 보관 시간.

이제 제품은 Mappings의 Storenderhistory에 대한 참조가 포함되어 있습니다.

<set name="StorageHistories" lazy="false">
  <key column="ProductId" />
  <one-to-many class="StorageHistory" />
</set>

그리고 그것은 orm에서 객체를 검색 할 때 비어있는 ISET을 얻습니다.

두통을주는 것은 처음에 물체를 구성하는 방법입니다. 다음을 수행 할 때 :

var product = new Product();
session.Save(product);

제품 .StorageHistories 속성은 NULL이며 NullReferenceException을 얻습니다. 그렇다면 해당 컬렉션에 항목을 추가하려면 어떻게해야합니까?

도움이 되었습니까?

해결책

나는 항상 부모 객체의 ctor에서 다음을 수행합니다.

역사 = 새로운 해시 세트 ();

여기에는 save () 사용 사례가 포함됩니다. load ()/get () 등 USecase는 당신이 언급 한대로 nhibernate로 덮여 있습니다.

다른 팁

왜 안 돼?

private ISet _StorageHistories;
public virtual ISet StorageHistories {
     protected set { _StorageHistories = value;}
     get { if (_StorageHistories == null) _StorageHistories = new HashSet();
           return _StorageHistories;
     }
}

물론 당신이 어쨌든 비공개를 갖는 데 어려움을 겪는다면 당신은 그것을 생성자에 넣을 수도 있습니다.

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