我在一个应用程序中使用breeze用于客户端和服务器端。我使用一个主管理器来获取所有静态数据,如选项列表,组合框等。我正在使用另一个管理器来编辑我的视图中的数据。
我正在追随这里被吮吸的方法: http://www.breezejs.com/documentation/multiple-managers#CreateMultipleManagers
但我有问题。我的问题是如何将主管理器中的信息更改为其他管理员?
例如我有这个模型:
EntityA { Id , description }
EntityB { Id , EntityA(Navigation Property), EntityAId}
我在模型中有这些数据:
EntityA :
1, 'Description 1'
2, 'Description 2'
3, 'Description 3'
EntityB
1, EntityA , 1
2, EntityA , 3
在我看来,我有一个实体B列表,当我选择一个项目进行编辑时,我可以更改它的属性。执行此操作后,我想更新显示的列表中的项目。 到目前为止一切都很好,这与非引用对象完美配合,如int,string等... 但是当我尝试在同一项目中更新我的EntityB导航属性时,为了显示正确的描述,如果我的视图管理器不知道该对象,则信息不会更新。
例如,如果我选择编辑上面列表的第一项。
所以我的问题是如何告诉我的视图管理器,显示正确的对象?知道我的主管经理,知道谁是那个对象。
我试图做EntityA.EntityB = EntitiesB [someIndex],这会产生以下错误:
错误:无法将实体附加到另一个EntityManager中的实体。必须首先分离两个实体中的一个。
*答案:
在我的应用程序中,我根据上下文使用了这两种方法。
答案 0 :(得分:0)
您可以从一个经理导出实体并将其导入另一个经理。例如
var arrayOfEntities = [ firstEntity, secondEntity, ... ]
var exportedEntities = entityManager1.exportEntities( arrayOfEntities, false);
var importedEntities = entityManager2.importEntities( exportedEntitites);