Mam typ jednostki o nazwie Obraz, który dziedziczy z publikacji (istnieje 5 innych typów publikacji, wszystkie mają 10 wspólnych właściwości).Podział tabel na dziedziczony typ jednostki?
Niestety, tabela obrazów w mojej bazie danych zawiera 4 kolumny binarne z danymi dla 4 wersji obrazu w różnych rozdzielczościach, więc istnieją 4 właściwości typu obrazu EF: BinOriginal, BinHiRes, BinLowRes, BinThumbnail, które zawierają bardzo duże ilości danych.
Wpływa to na wydajność. Nie chcę przechwytywać wszystkich danych binarnych, gdy generuję tylko serię linków do obrazów, na przykład.
Więc próbowałem dzielenie stołu, umieszczając pola binarne 4 do nowego podmiotu imagefile restauracja a la: http://blogs.msdn.com/b/adonet/archive/2008/12/05/table-splitting-mapping-multiple-entity-types-to-the-same-table.aspx
mam zapewniony prawidłowy table-mapping, dodano związek 1-1 i obejmowały ograniczenie referencyjne, ale ja dostaję ten błąd:
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.
... wydaje się, że jest to problem, że stół rozdzielona jest zaangażowany w stosunku spadkowego.
Próbowałem dziedziczy nowy typ imagefile EF niepublikowanie, ale wtedy pojawia się błąd:
Problem in mapping fragments starting at lines 2332, 2374:Two entities with
different keys are mapped to the same row
PYTANIE Czy istnieje sposób wokół tego, czy też fakt, że potrzeba mi obrazu Typ EF do dziedziczenia z publikacji wyklucza dzielenie innych pól na nowy typ?
Czy można zmienić schemat bazy danych? To znaczy. zrobić oddzielną tabelę dla obrazów? –
Tak: właśnie to zrobiłem jako "obejście" (to w rzeczywistości lepszy projekt DB, ale było znacznie więcej pracy, biorąc pod uwagę, że DB jest już w produkcji). Moje pytanie o podział na stoły nadal trwa - nadal jest to aspekt EF, który chcę zrozumieć. Jeśli możesz zweryfikować/udokumentować, że nie można podzielić tabeli, która jest podtypem w relacji dziedziczenia, wystarczy, że zaakceptuję odpowiedź. – Faust
OK, rozumiem, ale nie jestem pewien, czy mam zamiar zagłębić się w to :). –