如何强制缓存更新?
我有一个实体,实际上是数据库中的一个视图。我想强制缓存的实体进行编辑。通常,在保存实体时,也会更新缓存。但在这种情况下,我无法保存实体,因为它是一个视图。因此,我想强制缓存刷新并从数据库中读取更新的值。
我该怎么办呢?
答案 0 :(得分:2)
EntityQuery.fromEntities
:
breeze.EntityQuery.fromEntities(myEntity)
.using(myEntityManager).execute().then(...);
如果您要覆盖myEntity
的可能挂起的更改,请像杰伊那样添加OverwriteChanges:
breeze.EntityQuery.fromEntities(myEntity)
.using(breeze.MergeStrategy.OverwriteChanges)
.using(myEntityManager).execute().then(...);
如果你想刷新一堆实体(所有相同类型),你也可以这样做:
breeze.EntityQuery.fromEntities(employees) // employees is an array of Employee entities
.using(breeze.MergeStrategy.OverwriteChanges)
.using(myEntityManager).execute().then(...);
答案 1 :(得分:1)
请求MergeStrategy为OverwriteChanges的实体。像。的东西。
var entityKey = myEntity.entityAspect.getKey();
var query = EntityQuery.fromEntityKey(entityKey)
.using(MergeStrategy.OverwriteChanges);
myEntityManager.executeQuery(query).then(...);
在promise解析后,实体的最新版本将在缓存中。