NHibernate级联删除

时间:2010-06-24 15:25:10

标签: nhibernate fluent-nhibernate

我在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");
        }

1 个答案:

答案 0 :(得分:0)

如果你需要能够级联删除,那么你需要让NHibernate了解这种关系。这就是说你不需要让其他人可以访问这种关系。你当然可以拥有一个只有NH知道的私人收藏。

如果你使关系延迟加载,你甚至不应该看到性能受到影响。

要考虑的另一个选择是只修改删除方法以删除其他实体。