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");
}
}
但是,這是行不通的。我接到了錯誤試圖添加多對一的'父',當已經添加。
我該如何做映射,以便從數據庫正確加載孩子的父引用?