У меня есть структура данных с двумя родителями, у которой могут быть дети одного и того же класса (сущности).
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");
}
}
Но это не работает. Я получаю сообщение об ошибке Попытка добавить «родитель» «многие к одному», когда уже добавлено .
Как я могу сделать отображение, чтобы родительские ссылки дочерних элементов были правильно загружены из базы данных?