我有一个共同的超类(假设它是Employee
),其中包含(等等)子类Engineer
和Salesman
。
Employee
类的表结构使用table-per-hierarchy建模。
Department
对象引用销售人员和工程师:
public class Department
{
public IEnumerable<Engineer> Engineers { get; set; }
public IEnumerable<Salesman> Salesmen { get; set; }
}
当我从Engineer
清空Department
集合时出现问题:
cascade=none
或cascade=all
(Department
侧)映射时,所有Salesman
条记录的外键设置为null(此处)是nHib生成的语句:UPDATE dbo.Employee SET Department_id = Null WHERE Department_id = @p0;
。cascade=all-delete-orphan
映射时,我得到一个ObjectDeletedException
引用一个完全不同的Department
对象集合(无法想出这个)cascade=all
或cascade=none
以及每个子类策略的表进行映射时,所有内容似乎都正常工作cascade=all-delete-orphan
和表每个子类策略进行映射时,我再一次得到ObjectDeletedException
引用Department
对象的完全不同的集合显然我在这里缺少一些nHib基本...但它是什么?
答案 0 :(得分:0)
duhh .... inverse=true
在这些集合的父类上
仍然不确定是什么原因引起了看似无关的ObjectDeletedException
虽然......