Основной вопрос : Как создать двунаправленную карту «один ко многим» в Fluent NHibernate?
Детали:
У меня есть родительский объект со многими детьми. В моем случае для ребенка бессмысленно не иметь родителя, поэтому в базе данных я бы хотел, чтобы внешний ключ к родителю имел ограничение NOT NULL. Я автоматически генерирую свою базу данных из сопоставления Fluent NHibernate.
У меня есть родитель со многими дочерними объектами, например:
public class Summary
{
public int id {get; protected set;}
public IList<Detail> Details {get; protected set;}
}
public class Detail
{
public int id {get; protected set;}
public string ItemName {get; set;}
/* public Summary Owner {get; protected set;} */ //I think this might be needed for bidirectional mapping?
}
Вот отображение, с которого я начал:
public class SummaryMap : ClassMap<Summary>
{
public SummaryMap()
{
Id(x => x.ID);
HasMany<Detail>(x => x.Details);
}
}
public class DetailMap : ClassMap<Detail>
{
public DetailMap()
{
Id(x => x.ID);
Map(x => x.ItemName).CanNotBeNull();
}
}
В таблице сведений, Summary_id должен быть не нулевым, потому что в моем
В этом случае бессмысленно иметь объект Detail, не прикрепленный к
итоговый объект. Однако простое использование карты HasMany () оставляет внешний ключ Summary_id обнуляемым.
В документах NHibernate (http://www.hibernate.org/hib_docs/nhibernate/html/collections.html)) я обнаружил, что «если требуется родитель, используйте двунаправленную связь« один ко многим ».
Так как мне создать двунаправленную карту «один ко многим» в Fluent NHibernate?