2014-02-27 6 views
2

TPT (Type-Per-Table) 상속 패턴을 사용하여 Entity Framework 모델 (데이터베이스 우선)에 매핑되는 다음 테이블 계층 구조가 데이터베이스에 있습니다.Entity Framework에서 TPT 상속의 하위 클래스 테이블 행로드 방지

TPT inheritance

EF의 모델의 매핑은 간단하다 : 다른 2 구상 서브 클래스가있는 동안 AssetContent는 기본 추상 클래스입니다.

AssetContent 테이블은 그림을 분명하게 유지하기 위해 생략 된 다른 테이블과 다 - 대 - 다 관계에 참여합니다.

내 질문에, 어떻게 관련 테이블을로드하려면 테이블을 로드 2 '하위 테이블'전혀로드되지 않는 사용하여 Linq 빌드 할합니까? 이는 BinaryContent 필드가 상당히 커질 수 있으며 작성하려는 쿼리 발급자와 관련이없는 DatabaseAssetContent 테이블에 특히 중요합니다. Entity Framework는 느린 로딩이 활성화되어 있는지 여부에 관계없이 테이블의 전체 계층 구조를 자동으로로드하지만, AssetContent 테이블의 행만로드하는 데 관심이 있습니다.

Linq-to-Entities (Entity Framework 6)를 사용하면 이러한 쿼리를 사용할 수 있습니까?

답변

0

결국 난 AssetContent 테이블 1-1 관계가 AssetContentWithMetadata라는 다른 새로운 테이블로합니다 (Id 제외) AssetContent 테이블의 필드를 이동. 이 방법은 AssetContent 테이블은 실제로 하나의 필드 (ID)와 약간 어색하지만, 지금은 혼자뿐만 아니라 내용을 부담하지 않고 메타 데이터 테이블을로드 할 수 있습니다.