2011-02-14 1 views
2

次のように私は3つのテーブルを持つデータベースを持っている:多くの関連テーブルでエンティティデータモデルウィザードが機能しないのはなぜですか?

enter image description here

をビジュアルWeb開発者2010のExpressの内からは、私は、エンティティデータモデルウィザードを使用してEFモデルを作成します。私は3つのテーブルを選択します。残念なことに、結果として生じるEFモデルは接合テーブル、すなわちQuestionsTagsテーブルを含まない。次の図は、EFモデル図を示しています。

enter image description here

私の質問:なぜ、エンティティデータモデルウィザードが多く、多くの関連テーブルのために働くことができませんか?

答えて

2

これは、物理モデルと概念モデルの違いです。物理モデルでは、関係データベースはそれをネイティブにサポートしないため、M:N関係を定義することができるジャンクションを使用します。概念モデルでは、物理ストレージを扱わない。ジャンクションテーブルは、必要ではないため、概念モデルには含まれていません。あなたはそれにアクセスする必要はありません、タグに関連する質問や質問に関連するタグにアクセスする必要があります。これらのリレーションシップはナビゲーションプロパティによって直接アクセスできます。

接合テーブルは、追加の列(M:N関係を構築するためのFKだけでなく)が含まれている場合にのみ、モデルに自動的に追加されます。手動で(EF4)モデルを修正し、接合テーブルのエンティティを追加するように強制することもできます。

2

EFモデル図の下部にあるナビゲーションプロパティを確認します。

QuestionsTagsテーブルは、リレーショナルデータベースで多対多関係をモデル化するためにのみ存在します。厳密なテーブルスキーマに収まらないオブジェクトがある場合、質問オブジェクトのコレクションを使用してその質問のすべてのタグを取得し、同様にタグオブジェクトのコレクションを使用してすべての質問を取得することができますそのタグ... Entity Frameworkはこれをモデル化し、これらのコレクションを自動的に設定します。

+0

ああ...私はEFの新人です。ありがとう。 – LaTeX

関連する問題