我在A到B的数据模型中有一对多的关系。但是在我的域API中,我没有在A上暴露“B”(因为我们永远不会从A导航到B),但是从B到A的引用。现在我希望能够在删除A时删除所有“B”。可能吗?现在NH首先尝试将FK设置为null,这是我不想要的,因为列不可为空而不能。
A = SupplierType
B = BaseProductCoInsurance
public BaseProductCoInsuranceMap()
{
Table("BaseProductCoInsurance");
Id(x => x.Id, "BaseProductCoInsuranceId");
Map(x => x.CoInsurancePercent).Column("CoInsrPrcnt");
References(x => x.BaseProduct, "BaseProductId");
References(x => x.PolicySupplierType, "PlcySupplierTypeID");
References(x => x.InsuredType, "InsuredTypeCode");
}
答案 0 :(得分:0)
如果你需要能够级联删除,那么你需要让NHibernate了解这种关系。这就是说你不需要让其他人可以访问这种关系。你当然可以拥有一个只有NH知道的私人收藏。
如果你使关系延迟加载,你甚至不应该看到性能受到影响。
要考虑的另一个选择是只修改删除方法以删除其他实体。