パブリケーションから継承するImageというエンティティタイプがあります(他に5種類のパブリケーションがあり、共通プロパティは10種類あります)。継承されたエンティティタイプのテーブル分割?
残念ながら、私のDB内の画像テーブルは、異なる解像度で画像の4つのバージョンのデータと4つのバイナリ列を含むので、EF画像タイプの4つの特性がある:含有BinOriginal、BinHiRes、BinLowRes、BinThumbnailは、非常に大量のデータ。
これはパフォーマンスに影響します。たとえば、一連の画像リンクを生成しているときに、バイナリデータをすべて取得する必要はありません。
だからAラ新しい画像ファイルの実体に4つのバイナリフィールドを配置すること、テーブル分割を試みた:http://blogs.msdn.com/b/adonet/archive/2008/12/05/table-splitting-mapping-multiple-entity-types-to-the-same-table.aspx
Iは、正しいテーブル・マッピングを確保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.
...テーブルという分割が継承関係に関与していることに問題があるようです。
私はパブリケーションから新しい画像ファイルEFタイプを継承しようとしたが、その後、私はエラーを取得する:
Problem in mapping fragments starting at lines 2332, 2374:Two entities with
different keys are mapped to the same row
QUESTIONは、この周りに方法はありますか、私はイメージの必要があるという事実を行いますパブリケーションから継承するEFタイプは、他のフィールドを新しいタイプに分割することを排除しますか?
データベーススキーマを変更できますか?私。イメージのための別のテーブルを作る? –
はい:これは私が「回避策」として行っていることです(実際にはより良いDB設計ですが、DBはすでに稼動中であるため、もっと多くの作業が必要です)。テーブル分割についての私の質問は依然として立っています。それはまだ私が理解したいEFの側面です。継承関係のサブタイプであるテーブルを分割することができないことを確認/文書化できれば、回答を受け入れるだけで十分です。 – Faust
わかりましたが、私はそれについて掘り下げるかどうかはわかりません:)。 –