Breeze 导入实体

Breeze importEntities

当我的应用程序加载时,我导出了几个 breeze 实体并将它们存储在本地缓存中,以便稍后当我必须再次使用这些实体时,我将它们从本地存储中导入回来并执行本地查询。

有一个实体有 84389 行。我注意到 importEntites 需要更长的时间来执行这个实体。有什么办法可以加快速度吗?

var entities = manager.getEntities('Client');
var exportedEntity = manager.exportEntities(entities, { includeMetadata: false });

我正在缓存中存储 exportedEntity。

我正在从缓存中提取后将上述导出的实体导入到实体管理器中。

entityManager.importEntities(exportedEntity);

对于客户实体,上述语句需要更长的时间。客户端在 table 中有 80K 行。我不确定这是否会降低 importEntities 方法的执行速度。 我也在实体导入后在本地执行查询。

我想你的意思是你有一个 EntityType, Client, 84k rows/entities.

对象太多了。我会重新考虑是否应该将这些数据视为丰富的 Breeze 实体,或者是否应该将它们作为数据对象以更简单、更紧凑的形式保存。我强烈倾向于后者,特别是如果它们是只读的。将只读数据表示为实体的好处较少,并且在这些数量下,性能和内存使用率较差的可能性更大。

请记住,并非所有数据都必须是实体,Breeze 很乐意获取实体和原始数据的混合体。混合应用程序非常普遍。

如果您仍想探索将它们视为实体,您可以尝试以下导出命令,该命令将给定类型的所有实体输出为 JSON:

var exported = manager.exportEntities('Client', {asString:false, includeMetadata:false});

结果可以像以前一样导入。

var imported = manager.importEntities(exported);

可能提高导出和导入速度(或不提高)。

之后您不必在本地查询。所有导入的实体都在 imported.entities.