2010-06-24 156 views
0

我在从A到B的数据模型中拥有一对多的关系。但是在我的域API中,我没有在A上公开“B”(因为我们永远不会从A到B导航) ,但是从B到A有一个参考。现在我想删除A时删除所有“B”。可能吗?现在NH正在尝试首先将FK设置为​​null,这是我不想要的,因为列不能为空。NHibernate级联删除

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

你的贴图是什么样的? – R0MANARMY 2010-06-24 15:27:10

+1

我会“设置cascade =全部删除孤儿”,你有没有试过? – VoodooChild 2010-06-24 15:32:30

+0

@ROMANARMY:我刚刚用映射更新了这个问题 – epitka 2010-06-24 15:50:03

回答

0

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

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

另一个需要考虑的方法是只修改您的删除方法以删除另一个实体。