这个breeze documentation page有一个用于制作EntityManager副本的示例:
function createManager() {
// same configuration; no entities in cache.
var manager = masterManager.createEmptyCopy();
// ... copy in some entities (e.g.,picklists) from masterManager
return manager;
}
我不确定我应该如何执行“copy in some entities (e.g.,picklists) from masterManager
”步骤。
我想我可以创建实体,好像它们是新的一样。但它们不是,它们是从数据库中查询的选项列表值。
我考虑过尝试使用导出/导入,但这似乎是用于脱机工作并将所有值序列化为字符串。 (这似乎不像我想要的那样高效。)
每个人都有“正常”的方式在EntityManagers之间复制实体吗?
答案 0 :(得分:1)
是的,您通过导出和导入复制实体。为了提高性能,您应该指定
asString: false
,以避免字符串序列化开销,includeMetadata: false
,因为createEmptyCopy()
创建了一个已有元数据的EntityManager
所以:
function createManager() {
// same configuration; no entities in cache.
var manager = masterManager.createEmptyCopy();
var entities = masterManager.exportEntities(null, { asString: false, includeMetadata: false });
manager.importEntities(entities);
return manager;
}