如何在Breeze

时间:2015-06-02 19:03:27

标签: breeze

如何在Breeze中清除entityManager中的缓存,

实际上我正在尝试删除标准并保存标准,保存标准后,如果我从服务器收到任何错误,我试图删除标准。

  function (error) {
            var changedEntities = manager.getChanges([requestType, requestItemType, requestCriteriaItemType]);
            //rollback those entities
            for (var w = 0; w < changedEntities.length; w++) {
                changedEntities[w].entityAspect.rejectChanges();
            }

            ds.serviceName = originalServiceName;

            $rootScope.$broadcast("requestSaveComplete", {
                Successful: false,
                SaveResults: [],
                Errors: error.entityErrors
            });

我写了这样的代码,如果我收到任何错误,我删除标准并在此保存重新生成条件我遇到问题,在entityManger中它没有清除缓存

1 个答案:

答案 0 :(得分:3)

我不确定我是否理解这个问题,但是......

您只需调用EntityManager.clear即可清除entityManager的缓存(请参阅http://breeze.github.io/doc-js/api-docs/classes/EntityManager.html#method_clear

myEntityManager.clear();

或者您可以通过调用EntityAspect.setDetached来移除缓存中的单个实体:(http://breeze.github.io/doc-js/api-docs/classes/EntityAspect.html#method_setDetached

myEntity.entityAspect.setDetached();

或EntityManager.detachEntity(http://breeze.github.io/doc-js/api-docs/classes/EntityManager.html#method_detachEntity

myEntityManager.detachEntity(myEntity);