ネットを探し回り、解決策を思いつくと思った後、私は別のレンガの壁にぶつかったようです.
データベースにテーブルがあります: Photos; PhotoID、Caption、Ordering、および 4 つのバイナリ データ セット (Original、Large、Medium、および Small) の列が含まれています (そうです、さまざまな修正を加えた古い ASP.NET スターター キットに基づいていました)。
私は L2S から Entity Framework に移行する過程にあり、それによって得られると思われるいくつかの利点があります。たとえば、写真に添付されたタグのリストを取得するために PhotosTags プロパティを使用する必要はなくなりましたが、バイナリ データの読み込みを遅らせる方法を探しています。ほとんどの場合、必要なのはキャプション、タグ、ID だけです。これらを別の領域に渡して、ユーザーが実際に画像を表示したときにバイナリ データを取得します。 .
私は次の投稿を見てきました:
- データテーブルを分割するには?
- 「テーブル分割」: 複数のエンティティ タイプを同じテーブルにマッピングします。
- 第 7 章: Entity Framework 学習ガイド(7.1 高価なフィールドの読み込みを遅らせる)
そして、次のようなエンティティマッピングになりました。
そして、上記のリンクに従って、次の参照制約を含めるように edmx ファイルを変更しました。
<ReferentialConstraint>
<Principal Role="Photos">
<PropertyRef Name="PhotoID" />
</Principal>
<Dependent Role="PhotoDetails">
<PropertyRef Name="PhotoID" />
</Dependent>
</ReferentialConstraint>
モデルは検証されますが、ビルドされません-タグマッピングの問題により、次のように思います:
エラー 3019: 行 871、892 で始まるマッピング フラグメントの問題: 複合キー列のマッピングが正しくありません。テーブル siteContent_TagsPhotos (PhotoID) からテーブル siteContent_Photos (PhotoID) への外部キー制約 'FK_siteContent_TagsPhotos_siteContent_Photos': テーブル siteContent_TagsPhotos の列 (PhotoID) は、siteContent_TagsPhotos のプロパティ (PhotoID) にマップされ、テーブル siteContent_Photos の列 (PhotoID) はプロパティ (PhotoID) にマップされます。写真写真の詳細で。マッピングによる列の順序は保持されません。
写真からタグへの関係は、リンク テーブル、列 PhotoID、TagID を介して行われます。
このようなデータ構造を持つ .NET 3.5 SP1 の Entity Framework を操作するために、これらの推奨事項または同様のものを取得できた人はいますか? または、私の GoogleFU の制限を指摘できますか?
.NET 4 ではこれがすべてはるかに簡単になることはわかっていますが、それはここにはありません。私のホストがどこかにインストールすることを提案し始めるのは、リリース後おそらくしばらくかかるでしょう。
ありがとう。