У меня есть этот код:Breeze не обновляет свой список при использовании MergeStrategy.OverwriteChanges
breeze.EntityQuery.from(endpoint)
.withParameters(withParameters)
.toType(entity)
.using(breeze.MergeStrategy.OverwriteChanges)
.noTracking(false)
.using(manager)
.execute()
.then(_extractResponseResult)
.catch(_doSomethingElse);
function _extractResponseResult(response) {
console.log(">>. results: ", results);
return results;
}
и результат выглядит примерно так:
Myitem {
entityAspect : {...},
name : 'item name',
lists : Array[1]
}
Всякий раз, когда я выполнить метод breeze.EntityQuery.from()
, он всегда возвращает список без обновления. Который действительно начинает меня гадать. Как я могу убедиться, что он обновлен? Например, когда бэкэнд очищает список, не должно быть никаких списков, но когда я делаю breeze.EntityQuery.from()
, список все еще существует, хотя глупая сетевая консоль говорит: «Ох, список пуст», поэтому списки на ветру должны быть быть пустым, но потом я смотрю, и он не пуст. Все остальные свойства обновляются, кроме как из списка.
Мои метаданные выглядит следующим образом:
addType({
name: 'MyEntity',
dataProperties: {
id: {nullOk: false, isPartOfKey: true},
name: {}
},
navigationProperties: {
lists: {
hasMany: true,
entityTypeName: 'MyList',
associationName: 'Foo_MyList'
}
}
});
Я попытался очистить кэш, как предложил here, но, к сожалению, мои списки фактически отображаются в другой части экрана на одной странице (пользователь просто делает перечислить часть MyItem с помощью флажков), а также делать отрывную вещь, удаляет эти списки на экране, а потому, что они все тот же объект, тот же идентификатор, который я не намерен делать.
Работа на стороне сервера удаляются в основном кэш-когерентность, и это [трудная проблема] (http://stackoverflow.com/a/22192116/2517406). –