流利的nhibernate一对多父母删除

时间:2013-04-01 18:48:19

标签: fluent-nhibernate nhibernate-mapping nhibernate-cascade

我们有2个班,父母和孩子

父级没有对孩子的引用,孩子在其流畅的映射中定义了以下内容:

References(x => x.Parent, "Parent_id").Not.Nullable();

删除父记录时,会生成以下错误:

The DELETE statement conflicted with the REFERENCE constraint "FKFF68C21EE06905B9". The conflict occurred in database "DatabaseName", table "dbo.tblChild", column 'Parent_id'.
The statement has been terminated.

如果父模型没有类型为child的属性集合,那么启用父项删除的正确映射是什么?

1 个答案:

答案 0 :(得分:1)

由于外键约束,您无法删除子记录引用的父记录。如果您不想将子项映射为集合引用,则必须在删除父记录之前删除对所有子记录中的父记录的引用。您可以通过将对父项的引用设置为null(删除非空约束)或删除子记录来完成此操作。

所有其他解决方案都包含父记录中的反向子集合,并带有级联映射。