我有2个数据库,每个数据库都有相应的EntityFramework DB Context,我使用的是Entity Framework 5,Code-First。
我有类似以下的表格:
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)
然后,Foo
中的实体FooBar
,Database1DbContext
和Bar
中的Database2DbContext
。
Foo
的导航属性Parent
(类型为Foo
),Children
(类型为ICollection<Foo>
)和Bar
(类型为{ {1}})。
Bar
的导航属性FooBar
(类型为Foo
)和Foo
(类型为Bar
)。
现在,我想要的是能够Bar
,以便为.Include(foo => foo.Bar)
的所有Bar
和Parent
加载Children
同样。
我希望我不会太困惑。
PS:我知道设置Foo
导航属性会出现问题,因为它位于不同的数据库中。我在一些相关的答案中看到了建议,无论是观点还是同义词。任何答案也会考虑到我的情况,我将不胜感激。
答案 0 :(得分:2)
这是不可能的。您无法进行跨上下文查询或跨上下文切换/延迟加载。您必须为所有必需的Foo和FooBars加载Bar实例。