У меня есть ситуация, когда я использую таблицу для каждого подкласса для ассоциации. Отображения в порядке, пока я не попытаюсь удалить запись из таблицы подклассов. Причина удаления - это не только подкласс, который нужно удалить, но и родитель. Я могу понять, что эта функция может быть задумана, но есть ли способ просто удалить подкласс?
Вот мой пример кода.
public class ParentClassMap : ClassMap<Parent>
{
public ParentClassMap ()
{
Table("tblParent");
Id(x => x.ParentId).Column("ParentId").GeneratedBy.Identity()
... other properties
}
}
public class ChildClassMap : SubClassMap<Child>
{
public ChildClassMap()
{
Table("tblChild");
KeyColumn("ParentId");
... other properties
}
}
Теперь, когда я запрашиваю запись, все выглядит нормально
Child child = session.CreateCriteria<Parent>().Add(Restrictions.Eq("ParentId", 1)).UniqueResult<Parent>();
Но когда я удаляю дочерний элемент, выполняемый sql включает обновления всех таблиц, которые ссылаются либо на Parent, либо на Child, затем удаление Child, а затем Parent.
session.Delete(child);
Я хочу удалить только дочерний объект, возможно ли это?