1
동일한 클래스 (엔티티) 유형의 자식을 가질 수있는 부모가 두 개인 데이터 구조가 있습니다.동일한 자식 엔티티를 가진 다중 부모 NHibernate 참조 - 대 - 부모
public class Parent1 : BaseParent
{
public Parent1()
{
Childs1 = new List<Child>();
}
public virtual IList<Child> Child1 { get; set; }
}
public class Parent2 : BaseParent
{
public Parent2()
{
Childs2 = new List<Child>();
}
public virtual IList<Child> Child2 { get; set; }
}
public class Child
{
public virtual BaseParent Parent { get; set; }
}
하위 항목은 컬렉션에 속한 상위 항목에 대한 참조가 있어야합니다. 즉, Child가 Parent1.Childs1의 컬렉션에 있으면 Child.Parent는 Parent1을 참조해야합니다. Child가 Parent2.Childs2 컬렉션에 있으면 Child.Parent는 Parent2를 참조해야합니다.
나는public class Parent1Map: ClassMap<Parent1>
{
public Parent1Map()
{
Table("PARENT1");
:
HasMany<Child>(x => x.Child1).KeyColumn("PARENT1REF");
}
}
public class Parent2Map: ClassMap<Parent2>
{
public Parent2Map()
{
Table("PARENT2");
:
HasMany<Child>(x => x.Child1).KeyColumn("PARENT2REF");
}
}
public class ChildMap: ClassMap<Child>
{
public ChildMap()
{
Table("CHILD");
:
References<Parent1>(c => c.Parent).Column("PARENT1REF");
References<Parent2>(c => c.Parent).Column("PARENT2REF");
}
}
으로 시도하지만이 작동하지 않습니다. 오류가 발생했습니다 이미 추가 된 경우 many-to-one 'Parent'를 추가하려고 시도했습니다..
매핑을 어떻게 수행하여 하위 참조를 부모 데이터베이스에서 올바르게로드 할 수 있습니까?