2
로 주문 나무 매핑을 연결 :이중 우리가 사용 NHibernate에 간단한 클래스를 매핑 할 필요가 NHibernate에
public class CatalogItem
{
private IList<CatalogItem> children = new List<CatalogItem>();
public Guid Id { get; set; }
public string Name { get; set; }
public CatalogItem Parent { get; set; }
public IList<CatalogItem> Children
{
get { return children; }
}
public bool IsRoot { get { return Parent == null; } }
public bool IsLeaf { get { return Children.Count == 0; } }
}
이이 주제에 대한 인터넷에 자습서의 배치가 있지만, 그들 중 누구도 약간 불쾌한 세부 사항을 포함하지 : 우리는 필요 어린이 컬렉션에 보존 명령을 내린다. 우리는 맵핑을 시도했지만 NHibernate에 의해 던져진 이상한 예외가 발생했습니다 ("비 정적 메소드는 타겟이 필요합니다.").
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="Domain.Model" assembly="Domain">
<class name="CatalogItem" lazy="false">
<id name="Id" type="guid">
<generator class="guid" />
</id>
<property name="Name" />
<many-to-one name="Parent" class="CatalogItem" lazy="false" />
<list name="Children" cascade="all">
<key property-ref="Parent"/>
<index column="weight" type="Int32" />
<one-to-many not-found="exception" class="CatalogItem"/>
</list>
</class>
</hibernate-mapping>
아무 생각 없습니까?
코드를 컴파일 할 때 " 'CatalogItem'클래스의 'Children'속성에 대한 setter를 찾을 수 없습니다."라는 오류 메시지가 나타납니다. –