0

我有 2 个数据库,每个数据库都有一个相应的 EntityFramework DB 上下文,我正在使用 Entity Framework 5,代码优先。

我有类似于以下的表格:

Table     : Foo (resides in database 1)
-- Column : Id (is primary key)
-- Column : ParentId (is foreign key into Foo)
-- Column : BarId (is foreign key into Bar)

Table     : FooBar (resides in database 1)
-- Column : Id (is primary key)
-- Column : FooId (is foreign key into Foo)
-- Column : BarId

Table     : Bar (resides in database 2)
-- Column : Id (primary key)

然后,我有实体FooFooBarinDatabase1DbContextBarin Database2DbContext

Foo具有导航属性Parent(类型Foo)、Children(类型ICollection<Foo>)和Bar(类型Bar)。 FooBar具有导航属性Foo(类型Foo)和Bar(类型Bar)。

现在,我想要的是能够.Include(foo => foo.Bar),这样所有的和也Bar被加载了。ParentChildrenFoo

我希望我没有太混乱。

PS:我知道设置Bar导航属性会出现问题,因为它位于不同的数据库中。我在一些相关答案中看到了一些建议,这些建议暗示了观点或同义词。任何也考虑到我情况的这方面的答案将不胜感激。

4

1 回答 1

2

这不可能。您不能进行跨上下文查询或跨上下文急切/延迟加载。您必须自己为所有必需的 Foo 和 FooBars 加载 Bar 实例。

于 2012-06-06T20:56:42.370 回答