나는 다음과 같은 명령이 있습니다Entity Framework - 하나의 쿼리를 사용하여 1 : 1 테이블이 포함 된 테이블의 데이터를로드합니까?
var query = from x in context.FirstTable.Include("SecondTable")
where x.TestColumn == 5 &&
x.SecondTable.SecondTestColumn == 3
select x;
지금 나는 또한 "ThirdTable"라는 세 번째 테이블에서 항목을로드 할. 그러나 SecondTable 테이블을 통해서만 참조 할 수 있습니다. FirstTable에서 SecondTable까지의 외래 키와 SecondTable에서 ThirdTable까지의 외래 키가 있지만 FirstTable에서 ThirdTable까지의 외래 키는 없습니다.
다음 쿼리를 사용할 수 없습니다.
var query = from x in context.FirstTable.Include("SecondTable").Include("ThirdTable")
where x.TestColumn == 5 &&
x.SecondTable.SecondTestColumn == 3
select x;
을 또는 내가 다시 그 쿼리에서 벗어나 모든 결과 집합에 대한 ThirdTable에 추가 쿼리를 수행해야합니다 예외는 FirstTable에서 ThirdTable로 탐색 할 수 있었다?
미리 감사드립니다.
크레이그 Stuntz :
나는이 다음 외래 키 : 표 < -> 표 2 < -> 표 3의이 테이블은 다음과 같은 방법 가정 해 봅시다 : 주문 < -> 고객 <이 -> 을 customer_preferences
그래서 주문에서 customer_preferences로 외래 키를 만들 필요가 없습니다.
대부분의 경우 불필요합니다. 이번에는 데이터베이스 라운드 트립을 추가로 안전하게하고 싶습니다.
양 끝에 FK가없는 이유가 있습니까? –
외래 키를 가지고 있지만 Table1에서 Table3까지의 FK는 제 생각에는 필요하지 않습니다. 내 업데이트 된 게시물을 참조하십시오. 또는 orders 테이블에 customer_preference_id를 추가해야한다고 생각합니까? – Chris
좋아, 네가 필요한 FK를 가지고있는 것처럼 들리 네. 나는 아래에서 대답 할 것이다. –