Я пытаюсь создать сопоставление один-к-одному в своем приложении, я пробовал несколько примеров, которые я нашел в Stackoverflow и других местах, но пока безуспешно.
У меня есть класс заказа и класс бронирования. Несколько заказов могут существовать без резервирования, но резервирование всегда должно иметь заказ.
Мой план состоит в том, чтобы поместить FK в таблицу бронирования, а следующий код:
class Order
{
...
[OneToOne(Cascade = "all-delete-orphan")]
public Reservation Reservation
{
get;
private set;
}
}
А класс бронирования:
class Reservation
{
...
[ManyToOne(Column = "order_id", NotNull=true, Unique=true)]
public Order Order
{
get;
set;
}
}
Это хорошо работает, но когда я пытаюсь удалить заказ:
session.Delete(myOrder);
session.FlushSession();
Я получаю исключение нарушения FK из-за того, что резервный FK равен нулю, но я ожидал, что резервирование будет автоматически удалено из-за параметра Cascade.
Есть предложения?
Спасибо