Breeze 微风-多个经理
我在客户端和服务器端的一个应用程序中使用breeze。我使用一个主管理器来获取所有静态数据,如picklist、combobox等。我使用另一个管理器来编辑视图中的数据 我遵循这里的建议: 但我有问题。我的问题是如何将主经理的信息更改为其他经理的信息 例如,我有这个模型:Breeze 微风-多个经理,breeze,Breeze,我在客户端和服务器端的一个应用程序中使用breeze。我使用一个主管理器来获取所有静态数据,如picklist、combobox等。我使用另一个管理器来编辑视图中的数据 我遵循这里的建议: 但我有问题。我的问题是如何将主经理的信息更改为其他经理的信息 例如,我有这个模型: EntityA{Id,description} EntityB{Id,EntityA(导航属性),EntityAId} 我在模型中有这些数据: EntityA : 1, 'Description 1' 2, 'Descr
EntityA{Id,description}
EntityB{Id,EntityA(导航属性),EntityAId}
我在模型中有这些数据:
EntityA :
1, 'Description 1'
2, 'Description 2'
3, 'Description 3'
EntityB
1, EntityA , 1
2, EntityA , 3
在我的视图中,我有一个entitiesB列表,当我选择一个项目进行编辑时,我可以更改它的属性。完成此操作后,我想更新显示列表中的项目。
到目前为止还不错,这对非引用对象非常有效,如int、string等。。。
但是,当我尝试更新同一项目中的EntityB navigation属性以显示正确的描述时,如果我的视图管理器不知道该对象,则该信息不会更新
例如,如果我选择编辑上面列表的第一项
- 当我设置EntityB.EntityAId=3时。我的视图管理器,将导航属性更新为正确的实体a李>
- 当我设置EntityB.EntityAId=2时。我的视图管理器不知道谁是EntityA=2,因此它不会更新导航属性中的信息,并且视图中显示的描述仍然是原始描述,如果是新列表项,则为空
- 我手动创建了视图管理器中不存在的EntityB(未更改),这可以正常工作。我基于主管理器中选定的EntityB创建此新实体李>
- 答案建议如下,也很好用李>
在我的应用程序中,我根据上下文使用了这两种方法。您可以从一个管理器导出实体,然后将它们导入另一个管理器。比如说
var arrayOfEntities = [ firstEntity, secondEntity, ... ]
var exportedEntities = entityManager1.exportEntities( arrayOfEntities, false);
var importedEntities = entityManager2.importEntities( exportedEntitites);