Breeze-多个EF上下文、API控制器-在Breeze上下文中组合并连接它们(查找表)

Breeze-多个EF上下文、API控制器-在Breeze上下文中组合并连接它们(查找表),breeze,Breeze,我有2个EntityFramework上下文和相应的API控制器。 我有两个Breeze实体管理器。 我使用EntityManager 1阅读了一些国家/地区数据。 我通过EntityManager 2阅读了一些公司数据 现在我想显示以下列表: 公司名称国家名称1 公司名称2国家名称2 等等 在淘汰赛中,它看起来像这样: <table data-bind="foreach: companies"> <tr> <td data-bind="text: na

我有2个EntityFramework上下文和相应的API控制器。
我有两个Breeze实体管理器。
我使用EntityManager 1阅读了一些国家/地区数据。
我通过EntityManager 2阅读了一些公司数据

现在我想显示以下列表:
公司名称国家名称1
公司名称2国家名称2
等等

在淘汰赛中,它看起来像这样:

<table data-bind="foreach: companies">
  <tr>
    <td data-bind="text: name"></td>
    <td data-bind="text: country().name"></td>   <!-- from another entitymanager -->
  </tr>
</table>

这可能吗。我试过:
-在EntityManager 1上使用exportEntities/在EntityManager 2上使用importEntities
-向entityManager2添加了第二个数据服务,因此entityManager1的相同元数据可用

运气不好,就这么走吧。
有办法解决这个问题吗?
是否有一种方法可以将一个实体管理器中的数据与另一个实体管理器中的数据结合起来?
有没有办法在两个不同的元数据存储实体之间建立外键关系


谢谢,哈里干杯

从一个实体管理器中导出实体并将其导入另一个实体管理器应该是可行的。问题出在哪里?

从一个EntityManager导出实体并将其导入另一个EntityManager应该是可行的。问题出在哪里?

我打赌您希望能够从一个模型中定义的实体导航到另一个模型中定义的实体。对吗

如果是这样,那就行不通了。。。不是“开箱即用”。Breeze
EntityManager
允许来自不同模型的实体在缓存中共存。但它不能构成不同模型实体之间的导航

例如,假设
公司
数据库上下文
1中定义,而
国家
数据库上下文
2中定义,并且您已经安排了两个不同的元数据源,一个来自数据库上下文1(例如
新的EFContextProvider().metadata
),另一个来自数据库上下文2(例如
新的EFContextProvider().metadata

您将无法编写
a company.Country()
并从Model#2获取
Country
实例。不在服务器上的实体框架中。不是在Breeze客户机上(没有一些聪明)。原因很简单:
公司
国家
在不同的模型模式中定义。它们可能位于不同的数据库中,以完全不同的技术托管在不同的服务器上

现在,您可以创建自己的客户端
公司
属性,为您导航到
国家
。这就是你想做的吗

FWIW,即使在同一模型架构中定义了实体,也无法从一个管理器中的实体导航到另一个管理器中的实体。实体管理者彼此严格隔离。如果在同一架构中定义了
公司
国家
,并且由于某种原因,您在一个经理中有一个
公司
,在另一个经理中有一个相关的
国家
,那么您必须导入其中一个(例如,
国家
公司的经理中)如果要在实例之间导航。我这样说是为了澄清。我认为这不是问题所在,因为您说您尝试导入实体,但没有成功


让我们后退一步。你想干什么?为什么这些实体是在不同的
dbcontext
中定义的?

我敢打赌,您希望能够从一个模型中定义的实体导航到另一个模型中定义的实体。对吗

如果是这样,那就行不通了。。。不是“开箱即用”。Breeze
EntityManager
允许来自不同模型的实体在缓存中共存。但它不能构成不同模型实体之间的导航

例如,假设
公司
数据库上下文
1中定义,而
国家
数据库上下文
2中定义,并且您已经安排了两个不同的元数据源,一个来自数据库上下文1(例如
新的EFContextProvider().metadata
),另一个来自数据库上下文2(例如
新的EFContextProvider().metadata

您将无法编写
a company.Country()
并从Model#2获取
Country
实例。不在服务器上的实体框架中。不是在Breeze客户机上(没有一些聪明)。原因很简单:
公司
国家
在不同的模型模式中定义。它们可能位于不同的数据库中,以完全不同的技术托管在不同的服务器上

现在,您可以创建自己的客户端
公司
属性,为您导航到
国家
。这就是你想做的吗

FWIW,即使在同一模型架构中定义了实体,也无法从一个管理器中的实体导航到另一个管理器中的实体。实体管理者彼此严格隔离。如果在同一架构中定义了
公司
国家
,并且由于某种原因,您在一个经理中有一个
公司
,在另一个经理中有一个相关的
国家
,那么您必须导入其中一个(例如,
国家
公司的经理中)如果要在实例之间导航。我这样说是为了澄清。我认为这不是问题所在,因为您说您尝试导入实体,但没有成功

让我们后退一步。你想干什么?为什么这些实体在不同的
dbcontext
中定义