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
.
当我的应用程序加载时,我导出了几个 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
.