2

私の問題は単純ですが、EF にデータベース スキーマ (Oracle) を理解させることができないようです。

問題

複数のMM 関係をモデル化したい場合は、以下の図を参照してください。

ここに画像の説明を入力

ご覧のとおり、私は本と雑誌を持っています。リンク テーブル (ジャンクション テーブル、インターセクション テーブル、わかります!) を使用して、これらの両方に対する URI を保存したいと考えています。この場合、Journal 16 と Book 75 に対して保存したいのは「www.google.com」です。これらは、青でマークされた次の形式でリンク テーブルに保存されます。完全を期すために、ID 5 のリンクに緑色の例を追加しました。データがどのように組み合わされるかを見ることができます。

とにかく、EF モデルを更新しようとすると、(Visual Studio で) 次のようなエラーが表示されます。

行 210 から始まるフラグメントのマッピングの問題: テーブル REF_URI (REF_ID) からテーブル JOURNAL (REF_ID) への外部キー制約 'REF_URI_JOURNAL_FK1': テーブル REF_URI の列は AssociationSet BOOK_URISet の End BOOK にマップされますが、テーブル JOURNAL のキー列はマップされませんこの End に対応する EntitySet BOOK のキーに。

ええ、実際にはそのエラー メッセージが表示されません。
EF を 1 MM の関係で動作させることができます。

ここに画像の説明を入力

それはすべて「ハンキードーリー」で機能しますが、2番目のMM関係を追加すると、上記のエラーメッセージで失敗しました.

ここに画像の説明を入力

どうすればこれを回避できるか知っている人はいますか?

4

1 に答える 1

3

2 つの多対多のリレーションシップの場合、2つのリンク テーブル (ジャンクション テーブル、交差テーブル)REFBOOK_URIとが必要REFJOURNAL_URIです。それが、例外が不可解な方法で言っていることだと思います。テーブルが 1 つしかない場合、Journal 123 が URI 789 にリンクしている場合、Book 123 も URI 789 にリンクする必要があることを意味します。これは、リンク テーブルの列がと テーブルの両方に対するREF_IDnull 非許容の外部キーになるためです。JournalBook

于 2012-07-24T21:28:11.780 に答える