각각 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)
그런 다음, 나는 실체 Foo
, Database1DbContext
에서 FooBar
및 Database2DbContext
에서 Bar
있습니다
나는 테이블은 다음과 닮은 있습니다.
Foo
는 Children
및 (유형의 Bar
) Bar
(유형의 ICollection<Foo>
) Parent
(Foo
형의) 탐색 특성을 갖는다. FooBar
에는 Foo
(유형이 Foo
) 및 Bar
(유형이 Bar
)의 탐색 속성이 있습니다.
자, 내가 원하는 Bar
가 아니라 Foo
의 모든 Parent
및 Children
위해로드되도록, .Include(foo => foo.Bar)
할 수있을 것입니다.
나는 너무 혼란스럽지 않았 으면 좋겠다.
추신 : 다른 데이터베이스에 있기 때문에 내비게이션 속성 Bar
을 설정하는 데 문제가 있다는 것을 알고 있습니다. 보기 또는 동의어를 제안하는 몇 가지 관련 답변에서 제안을 보았습니다. 그 상황을 고려한 답변도 크게 환영 할 것입니다.
다른 데이터베이스의 추가 된 복잡성이 없다면 어떻게 할 수 있습니까? 그것은 정말로 제 질문입니다. –
EF는 계층 적 쿼리를 지원하지 않으므로'Include'를 사용할 수있는 일반적인 쿼리로 모든 중첩 노드와 함께 전체 단일 계층 구조를로드하려면 추가 열 (예 : TreeId)이 필요합니다. –
감사합니다. 그것은 많은 것을 명확히합니다. –