SaveOrUpdate将替换所有表

时间:2014-03-17 10:24:14

标签: c# sql-server fluent-nhibernate

假设我有一个名为Parent的表,在数据库中有5行Children信息。

如果我在应用程序层中删除父列表中的所有子项并添加一个在db中不存在的新子项然后运行SaveOrUpdate,表中的现有子项是否会被删除或者只是将不存在的子项添加到表中?

编辑:我得到了Cascade.ALL,但没有在我的映射中删除orphan。

1 个答案:

答案 0 :(得分:1)

如果您使用级联,则只有删除父级才会删除所有子项。如果删除子项并将其父属性重置为null,则这些子记录仅使用空父引用进行更新,但不会从数据库中删除。

您可以在nhibernate documentation(第21.3章。级联生命周期)中找到解释和示例。