我有两个表tableA和tableB。无法删除集合:[NHibernate.Exceptions.GenericADOException]
TableA的有柱:tabAId,COL2,COL3 (tabAId的PrimaryKey和标识列。)
tableB的有柱:tabAId,名(tabAId不为null)
我已创建袋在tableA的hbm文件中,维护关系。
<bag name="tableB" lazy="true" inverse="false"
batch-size="25" cascade="all-delete-orphan">
<key column="tabAId" />
<one-to-many class="tableB" />
</bag>
当我尝试在表A它抛出异常,在这里,我有表A实例孩子的名单进行更新记录。
[NHibernate.Exceptions.GenericADOException] = { “无法删除集合:[MIHR.Entities.tableA.tableB#21] [SQL:UPDATE dbo.tableB SET tabAId = NULL WHERE tabAId = @ P0]” }
的InnerException = { “无法插入NULL值插入列 'tabAId',表 'SA_MIHR_DEV.dbo.tableB';。 列不允许空值更新失败\ r \ n该语句已终止” }
如果我设置Inverse =“true”,那么它不会插入新生成的标识列值插入子表中,同时在父表中插入新记录。 –
科勒:请告诉我该怎么做,我什么时候设置'inversr =“true”'。 –
现在你应该看到...我更新了我的答案。当然,您的孩子实体必须提及父母。查看http://stackoverflow.com/a/30005490/1679310了解详情 –