我在我的应用程序中使用多个管理器。创建新经理后,我立即执行此操作(伪代码):
newManager.importEntities(existingManager.exportEntities());
在现有管理器中,所有实体都按预期工作,并正确填充所有导航属性。但在新管理器中,某些实体具有空导航属性。填充了外键属性,但导航属性为null。
现有经理:
ParentEntity
id = 1
childEntities = [childEntity]
ChildEntity
id = 2
parentEntity = parentEntity
parentEntityId = 1
新经理:
ParentEntity
id = 1
childEntities = []
ChildEntity
id = 2
parentEntity = null
parentEntityId = 1
这只发生在几个实体上。绝大多数实体都在管理器中正确创建,具有预期的导航属性。但我看不出有关未正确导入的实体的任何不同之处。是什么导致这种情况发生?
答案 0 :(得分:0)
您使用的是什么版本的Breeze?
我们曾在一段时间内报告过类似的问题,但它在1.3.2版本上得到修复。
当时,问题发生在backingStore上,并且与registerEntityTypeCtor中的initializationFn参数有关。 解决方法是不设置initializationFn,而是在创建实体后使用initializationFn代码调用方法。
上述问题再次在版本1.3.2中得到修复。
如果您使用的是1.3.2或更高版本但仍然存在问题,请创建一个小问题解决方案,并将其发送至breeze@ideablade.com
=================================
编辑:
我们刚刚发布了1.4.1版,它修复了一个错误,其中EntityManager.importEntities并不总是在复杂的图形中完全修复关系。
如果1.3.2上的修复程序无法解决您的问题,您可能需要尝试使用此最新版本。