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