breezejs-从通知更新缓存

breezejs-从通知更新缓存,breeze,Breeze,在我的设置中,当实体发生更改时,我会从服务器收到signalr通知,以解决性能问题-在通知上,更改的实体上有所有更改轨迹,因此我可以在不访问服务器的情况下更新它,如何在entitymanager上提交更改?由于我使用Angular绑定到缓存,因此无法替换实体 是通过setUnchanged()实现的吗?PW Kad有正确的答案。只需就地更新实体并调用EntityAspect.acceptChanges即可。如果通知返回javascript对象,则应创建标识此对象的EntityKey,使用Enti

在我的设置中,当实体发生更改时,我会从服务器收到signalr通知,以解决性能问题-在通知上,更改的实体上有所有更改轨迹,因此我可以在不访问服务器的情况下更新它,如何在entitymanager上提交更改?由于我使用Angular绑定到缓存,因此无法替换实体
是通过setUnchanged()实现的吗?

PW Kad有正确的答案。只需就地更新实体并调用EntityAspect.acceptChanges即可。如果通知返回javascript对象,则应创建标识此对象的EntityKey,使用EntityKey在EntityManager本地缓存中查找现有对象,对其进行更新,然后调用acceptChanges。像这样的

function mergeFromNotification(entityManager, notificationEntity) {
   // you will need to write 'extractEntityKey'
   var entityKey = extractEntityKey(notificationEntity);
   var existingEntity = entityManager.getEntityByKey(entityKey);
   // updates existingEntity with data from notificationEntity
   breeze.core.extend(existingEntity, notificationEntity);
   existingEntity.entityAspect.acceptChanges() ;

}

为什么不更新实体并调用acceptChanges呢?