NHibernate级联删除

NHibernate级联删除,nhibernate,fluent-nhibernate,Nhibernate,Fluent Nhibernate,在a到B的数据模型中,我有一个一对多关系。但是在我的域API中,我不公开a上的“B”(因为我们永远不会从a导航到B),而是有一个从B到a的引用。现在,我希望在删除a时能够删除所有“B”。可能吗?现在NH正在尝试首先将FK设置为null,这是我不想要的,但由于列不可为null,所以无法设置 A=供应商类型 B=基本产品共同保险 public BaseProductCoInsuranceMap() { Table("BaseProductCoInsura

在a到B的数据模型中,我有一个一对多关系。但是在我的域API中,我不公开a上的“B”(因为我们永远不会从a导航到B),而是有一个从B到a的引用。现在,我希望在删除a时能够删除所有“B”。可能吗?现在NH正在尝试首先将FK设置为null,这是我不想要的,但由于列不可为null,所以无法设置

A=供应商类型

B=基本产品共同保险

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

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

如果你让关系延迟加载,你甚至不应该看到这对性能的影响


另一个要考虑的选项是修改你的删除方法,也删除另一个实体。

你的映射是什么样子的?我会“设置级联=所有删除孤儿”,你试过了吗?@罗马军队:我刚刚用A更新了这个问题。mapping@VoodooChild:设置为什么?我没有A上“B”集合的映射,所以这甚至不是一个选项?是“身份证”吗?如果是这样,您可能需要查询B的列表,并在删除项目a时将其全部删除!我认为您将无法使用级联。。。。