我有兩個表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瞭解詳情 –