Publication から継承する Image というエンティティ タイプがあります (Publication には他に 5 つのタイプがあり、すべてが 10 の共通プロパティを共有しています)。
残念ながら、私の DB の画像テーブルには、異なる解像度の画像の 4 つのバージョンのデータを含む 4 つのバイナリ列が含まれているため、EF 画像タイプには次の 4 つのプロパティがあります: BinOriginal、BinHiRes、BinLowRes、BinThumbnail。データ。
これはパフォーマンスに影響を与えています。たとえば、一連の画像リンクを生成しているだけのときに、すべてのバイナリ データを取得したくありません。
そこで、4 つのバイナリ フィールドを新しい ImageFile エンティティに配置して、テーブル分割を試みました。複数のエンティティ タイプから同じテーブルへ.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.
…分割するテーブルが継承関係にあることに問題があるようです。
Publication から新しい ImageFile EF タイプを継承しようとしましたが、エラーが発生しました。
Problem in mapping fragments starting at lines 2332, 2374:Two entities with
different keys are mapped to the same row
質問これを回避する方法はありますか、それとも Image EF 型を Publication から継承する必要があるという事実は、他のフィールドを新しい型に分割することを妨げますか?