如何在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中它没有清除缓存
答案 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);