출판물에서 물려받은 Image라는 엔티티 유형이 있습니다 (5 가지 다른 유형의 출판물이 있으며 모두 10 가지 공통 속성을 공유합니다).상속 된 엔티티 유형의 테이블 분할?
불행히도 내 DB의 이미지 테이블에는 4 가지 버전의 이미지에 대한 데이터가 포함 된 4 개의 이진 열이 서로 다른 해상도로 포함되어 있으므로 포함하는 BinOriginal, BinHiRes, BinHiRes, BinLowRes, BinThumbnail의 4 가지 속성이 있습니다. 매우 많은 양의 데이터.
이것은 성능에 영향을줍니다. 예를 들어 일련의 이미지 링크를 생성 할 때 이진 데이터를 모두 포착하고 싶지는 않습니다.
그래서 나는 새로운 ImageFile 엔티티 라로 사 개 진 필드를 배치, 테이블 분할을 시도했다 : 나는 올바른 테이블 매핑을 보장 한 http://blogs.msdn.com/b/adonet/archive/2008/12/05/table-splitting-mapping-multiple-entity-types-to-the-same-table.aspx
, 1-1 연결을 추가하고 포함 참조 제한 조건,하지만 난이 오류를 받고 있어요 :
Error 3033: Problem in mapping fragments starting at line 2731:EntitySets
'ImageFiles' and 'Publications' are both mapped to table 'Images'. Their primary
keys may collide.
를 ... 상속 관계에 참여하는 테이블 인 분할에 문제가있어 보인다.
내가 출판의 새로운 ImageFile EF 유형을 상속 시도했다, 그러나 나는 오류 얻을 :
Problem in mapping fragments starting at lines 2332, 2374:Two entities with
different keys are mapped to the same row
질문이 주변에 어떤 방법이 있나요, 아니면 제가 이미지를 필요로한다는 사실을한다 발행물에서 상속하는 EF 유형은 다른 필드를 새로운 유형으로 분리하지 못하도록합니까?
데이터베이스 스키마를 변경할 수 있습니까? 나는. 이미지를위한 별도의 테이블을 만드시겠습니까? –
예 : 지금은 "work-around"(실제로는 더 나은 DB 디자인이지만, DB가 이미 생산 중이므로 훨씬 더 많은 작업이있었습니다)입니다. 테이블 분리에 관한 제 질문은 여전히 중요합니다. 이해해야하는 부분은 EF입니다. 상속 관계에있는 하위 유형 인 테이블을 분할 할 수 없다는 것을 확인/문서화 할 수 있다면 대답을 받아 들일 만만 큼 충분할 것입니다. – Faust
좋아, 이해하지만, 나는 그것에 대해 파헤쳐 야할지 잘 모르겠다. :) –