質問: EF6テーブルは、多くの場合、多くの場合、主キーが必要ですが、その多対多テーブルのクラスを作成する必要がありますか?私は今、たくさんのテーブルを作成する2つの方法を見てきました。この質問でここで答えられたもの: EF6のために多数のテーブルに名前を付けるにはどうすればいいですか?このために特別なマッピングを追加する必要がありますか? そしてこの質問のここにあるもの: Entity Framework:多対多関係、挿入および更新 最初の答えは主キーを持つテーブルを示唆し、2番目の答え(6票)は、EFで多数のテーブルが定義されていない非常に異なるアプローチを示唆していますか? 私の考えることは、主キーは必要ないということです。なぜなら、ASP.NETアイデンティティによって作成された新しいテーブルを見ると、多くの場合、UserRolesテーブルが主キーを持たないからです。
回答: 2つのエンティティが多対多の関係で相互に関連している場合エンティティフレームワークコードファーストは、エンティティクラスを作成しなくても結合テーブルを作成します。 ジョインテーブルに*は*プライマリキーがありますが、この場合は2つの外部キーからエンティティをサポートするテーブルまでのコンポジットです。あなたの最初のリンクでは、EFはその流暢なAPIからSQLを生成しないので、答えが誤解を招くと思います。しかし、デフォルトを気に入らない場合は、カラムとテーブルに名前を付ける方法を教えてくれます。 2番目の例では、まずデータベースを使用し、多対多を同じ標準的な方法でモデリングしています。すなわち、2つの外部キーの複合体である主キー。 あなたが知っておくべきことは、多対多の関係から始まることもあります。次に、関係自体にいくつかの属性があることを理解してから、エンティティとの関係をそれ自身で促進しなければならないでしょう。別の主キーを追加する 参照: 多対多リレーションシップの構成