次の投稿によると、Entity Framework (最初にコード) で多対多の関係を作成しようとしています: MVC と Entity Framework の限られた数の選択肢のためのデータベース設計?
しかし、私はそれを正しく動作させることができず、非常に単純なことを間違った方法で行っていると確信しています. ここに私の試みから持っていない図があります:
ジャンクション テーブルの要点は、リレーションシップに追加のプロパティ Level が必要であるため、コンサルタントとプログラムの間の直接的なリレーションシップだけを使用することはできません。デザイナーに ConsultantProgramLink エンティティを手動で追加し、Program と Consultant にそれぞれ関連付けを追加し、それぞれに FK を追加することを選択して、両方を主キーにしました。しかし、このようにすると、期待どおりに動作しません。
Consultant と Program を直接関連付けていれば、コード内でたとえば Consultant.Programs を参照できたはずです。しかし、それはジャンクション テーブルでは機能しません。これを解決する方法はありますか、それとも常にジャンクション プロパティ (Consultant.ConsultantProgramLink.Programs) を使用する必要がありますか? いずれにせよ、junction プロパティを通過しようとしても役に立ちません。私のコードで Consultant.ConsultantProgramLink を実行できますが、別のドットではナビゲーション プロパティ Programs が表示されません (何らかの理由で単に Programs になったのはなぜですか?最終的にそれらにアクセスできるようになったら、名前を変更できますか?) .
それで、私は何を間違っていますか?コードでドット表記を使用してプロパティにアクセスできないのはなぜですか?