У меня есть два класса: Семья и Адрес.
У семьи есть физический адрес и почтовый адрес.
Файл сопоставления для Family выглядит следующим образом:
....
<id name="Id" column="Id" type="Int32" unsaved-value="0">
<generator class="native"></generator>
</id>
<many-to-one name="PhysicalAddress" class="Address" column="PhysicalAddressId" cascade="all" unique="true" />
<many-to-one name="MailingAddress" class="Address" column="MailingAddressId" cascade="all" unique="true" />
...
Файл сопоставления для адреса выглядит так:
...
<id name="Id" column="Id" type="Int32" unsaved-value="0">
<generator class="native"></generator>
</id>
<property name="StreetAddress1" column="StreetAddress1" />
<property name="StreetAddress2" column="StreetAddress2"/>
<property name="City" column="City" />
<property name="State" column="State" />
<property name="ZipCode" column="ZipCode" />
...
(Обратите внимание, что Family-PhysicalAddress и Family-MailingAddress являются отношениями один-к-одному.)
Я хотел бы, чтобы, когда я выполняю
aFamily.MailingAddress = null;
session.Save(aFamily);
session.Flush();
Я ожидаю, что NHibernate автоматически удалит запись почтового адреса из SQL Server для меня.
НО, этого не происходит. NHibernate не удаляет адресную запись из SQL Server.
Есть ли способ заставить его работать?
Спасибо!