nhibernate 객체를 만들고 세트를 초기화합니다
-
06-07-2019 - |
문제
나는 불리는 테이블이있다 제품 그리고 테이블이 있습니다 보관 시간.
이제 제품은 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;
}
}
물론 당신이 어쨌든 비공개를 갖는 데 어려움을 겪는다면 당신은 그것을 생성자에 넣을 수도 있습니다.
제휴하지 않습니다 StackOverflow