コードファーストの多対多の関係では、複合キーが2つの別々のオブジェクト間で使用されます。したがって、中間テーブル(オブジェクト・モデルを使用して情報にアクセスするため必ず表示されるわけではありません)では、好きなだけ多くのGerechtとBestellenを組み合わせることができます。アイテムは一意である(複合キーと考える)。 GerechtとBestellingenの間に追加の関係を作成しようとすると、別の一意の識別子がある場合に限り、これを行うことができます。その場合は、適切な複合キーとともに追加のオブジェクトを作成する必要があります。
例(オランダ語で申し訳ありません...慣れていないので、私は英語の例を使用します):PersonCourseにおける3つの列の組み合わせが一意であるよう
public class Person
{
public int PersonID { get; set; }
public virtual ICollection<PersonCourse> PersonCourses { get; set; }
}
public class Course
{
public int CourseID { get; set; }
public virtual ICollection<PersonCourse> PersonCourses { get; set; }
}
public class PersonCourse
{
[Key, Column(Order = 0)]
public int PersonID { get; set; }
[Key, Column(Order = 1)]
public int CourseID { get; set; }
[Key, Column(Order = 2)]
public int AnotherUniqueParameter { get; set; }
// Navigation Properties
public virtual Person { get; set; }
public virtual Course { get; set; }
}
限り、あなたはできるだけ多くを追加することができますあなたが望むように特定の人とコースの関係。もちろん、この中間テーブルを使用することはこの状況でのみ必要です。それ以外の場合は、既に行っていることは正しいです(少なくとも私はあなたの質問に基づいて伝えることができます)。
同じIDのアイテムは一度保存する必要があります。期待どおりの結果と実際の結果をDbで詳しく説明できますか? –