1

当我创建一个新实体并设置其导航属性然后拒绝父级对空白实体进行的更改时。在拒绝更改之前,我是否需要明确地从父实体中删除新实体?我没有明确地将它添加到父级,我只是设置了新实体的父级 ID。

4

1 回答 1

1

拒绝对新实体的更改只会丢弃该实体 - 使其 entityState “分离”。在这种情况下,任何依附于父母的孩子实际上都会陷入困境,即他们没有父母。

换句话说,Breeze 不会因为父级的rejectChanges 而对任何子级调用rejectChanges 。这是故意的。

所以你最好的选择是对孩子也调用rejectChanges。如果他们自己是新实体,他们也会变得分离,否则他们的父母将恢复到他们以前的父母的任何实体。

请注意,您可以使用 EntityManager.getEntities 方法返回指定 entityTypes 和 entityStates 的所有实体。这对于确定要“回滚”哪些实体很有用。

请参阅实体管理器 getEntities 方法

于 2013-04-04T22:14:27.290 回答