У меня есть два класса.Один называется Employee
, а другой EmployeeDetails
имеет нулевую или одну связь со своим родительским классом 'Employee'
.Другими словами, бывают случаи, когда нам нужно хранить дополнительные данные в этом классе 'EmployeeDetails'
, но это не обязательно является нормой.Структура db довольно проста: у EmployeeDetails тот же идентификатор, что и у его родителя.
Проблема, с которой я столкнулся, заключается в удалении класса 'EmployeeDetails'
из класса 'Employee'
, я бы предположил, чтоустановка объекта в null привела бы к уловкам и сбрасыванию сеансов, но запись в БД не удаляется.
Мои сопоставления ...
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="StudioBusinessLayer.Data.Structure.Employee, StudioBusinessLayer" table="tblEmployee" lazy="false">
<id name="ID" column="ID" type="int">
<generator class="native" />
</id>
<property name="Name" column="Name" not-null="true" type="string" length="100" />
<!-- etc -->
<one-to-one constrained="false" name="EmployeeDetails" class="StudioBusinessLayer.Data.Structure.EmployeeDetails, StudioBusinessLayer" cascade="all-delete-orphan" />
</class>
</hibernate-mapping>
... и дляКласс EmployeeDetails ...
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="StudioBusinessLayer.Data.Structure.EmployeeDetails, StudioBusinessLayer" table="tblDetails" lazy="false">
<id name="ID" column="DetailsID" type="int">
<generator class="foreign">
<param name="property">Employee</param>
</generator>
</id>
<property name="Address" column="Address" not-null="false" type="string" length="1000" />
<property name="ContactEmail" column="ContactEmail" not-null="false" type="string" length="255" />
<property name="ContactName" column="ContactName" not-null="false" type="string" length="255" />
<property name="ContactTelephone" column="ContactTelephone" not-null="false" type="string" length="255" />
<property name="ZipCode" column="ZipCode" not-null="true" type="string" length="100" />
<many-to-one name="Employee" class="StudioBusinessLayer.Data.Structure.Employee, StudioBusinessLayer" column="DetailsID" insert="false" update="false"></many-to-one>
</class>
</hibernate-mapping>
Вставки и обновления работают нормально, но я изо всех сил пытался найти переключатель, который делает эту работу для удалений.
Любая помощь или предложения с благодарностью принимаются...