私は.Net 4.5、エンティティフレームワーク5、データベースを最初に使用しています。データベースにジャンクション (多対多) テーブルがあります。この例では、テーブルが「StudentsCourses」であるとしましょう:
Students
-PkStudentId
-Name
Courses
-PkCourseId
-CourseNumber
StudentsCourses
-FkStudentId
-FkCourseId
これは今のところうまく機能します。「データベースからモデルを生成」は、Course エンティティへのナビゲーション プロパティを持つ Student エンティティを作成します。しかし、ここで問題が発生します。
StudentsCourses テーブルに別の列を追加する必要があります。この列を「CourseYear」と呼びましょう。したがって、ジャンクション テーブルは次のようになります。
StudentsCourses
-FkStudentId
-FkCourseId
-CourseYear
そのため、この列をデータベースに追加し、edmx で「データベースからモデルを更新」を実行しました。StudentCourses 用に作成されたエンティティが、Students と Courses の両方へのナビゲーション プロパティを持つことを期待しています。しかし、そのようなエンティティは作成されません。以前と同じナビゲーション プロパティを持つ同じ 2 つのテーブル (Students & Courses) が表示されます。
私は多くの読書と研究を行ってきましたが、明確な答えに出くわしていません. 私のシナリオには当てはまらないコード ファーストに関する情報が豊富にあります。私が求めているものを手に入れる方法はありますか?StudentCourses テーブルに PkId を追加するのと同じくらい簡単ですか? SQL レプリケーションが原因で、これを行うことができません。コンポジットで十分だと思いますが、EFには魔法を行うためにPKが必要なのでしょうか? 関係を手動で設定する方法について少し読みましたが、私の特定の状況に当てはまるものは見つかりませんでした。データベースから edmx を更新するプロセスで、単純な手順を見逃している可能性があります。新しいテーブルの追加、列の追加、列の削除など、これを何度も行ってきました。いつもと同じ手順に従っています。
助けてくれてありがとう。大変感謝しております。さらに情報が役立つかどうか教えてください。