У меня следующая ситуация:
У меня есть 2 класса (дочерние) и составной класс (родительский):
public Parent
{
public ChildOne C1 {get;set;}
public ChildTwo C2 {get;set;}
}
public ChildOne
{
public int Id{get;set;}
...some primitive fields
}
public ChildTwo
{
public int Id{get;set;}
...other primitive fields
}
Отображение для этих классов следующее:
public class Parent: ClassMap<Parent>
{
public ParentMap()
{
Table("Parents");
Id(x => x.Id).Column("ParentId");
References(x => x.C1).Column("ChildOneId");
References(x => x.C2).Column("ChildTwoId");
}
}
и
public class ChildOne: ClassMap<ChildOne>
{
public ChildOneMap()
{
Table("ChildOnes");
Id(x => x.Id).Column("ChildOneId");
...other Mappings for primitive types
}
}
(и то же самое для ChildTwo).
БД выглядит следующим образом:
Parents: ParentId, ChildOneId, ChildTwoId
ChildOne: ChildOneId, ...other columns
ChildOne: ChildTwoId, ...other columns
и отношения ChildOneId(Родители) <==> ChildOneId (ChildOnes).
Когда я хочу вставить новый родительский элемент в Db с соответствующими дочерними элементами, я получаю сообщение об ошибке, что ChildOneId / ChildTwoId не может быть нулевым.
Что мне нужно указать в классе сопоставления, чтобы вставка работала?(Операция получения работает правильно)
Спасибо, Тамаш