我有一个双向的一对多关系,在映射的两端定义了cascade =“all”,并且在一对多的一端定义了inverse =“true”。
当我调用SaveOrUpdate一个新实体时,它正确地在父表中插入一行,然后在子表中插入所有子对象。
但是,如果我有一个现有实体并更新子对象的某些属性(比如更改一些字符串属性),那么在父实体上调用SaveOrUpdate,它只更新父表中的信息。我期待它也更新所有子实体。
这是预期的行为吗?我是否需要自己手动更新所有子对象?我不确定我是否在我的映射中弄乱了某些东西(在这种情况下我会将它们添加到问题中)或者这是否是NHibernate的行为方式。
编辑:发现错误;像往常一样,键盘和椅子之间存在问题。
答案 0 :(得分:1)
没关系,我只是愚蠢并更新了一个未映射到任何列的属性。
看起来NH会更新只需要更新的子记录。