私はコード ファーストの Entity Framework を使用しており、それぞれに ICollection を追加することで、ObjectA と ObjectB の間に多対多の関係を簡単に作成できることを知っています。EF は、バックグラウンドでリンク テーブルを自動的に作成します。
public class ObjectA {
public ICollection<ObjectB> ObjectsB { get; set; }
}
public class ObjectB {
public ICollection<ObjectA> ObjectsA { get; set; }
}
このリレーションに追加のプロパティが必要になったので、独自のリンク テーブルを作成しました。
public class ObjectA {
public ICollection<ObjectA_ObjectB> AtoB { get; set; }
}
public class ObjectB {
public ICollection<ObjectA_ObjectB> BtoA { get; set; }
}
public class ObjectA_ObjectB {
public ObjectA A { get; set; }
public ObjectB B { get; set; }
public DateTime MyStartDate { get; set; }
}
これは正常に機能しますが、大きな損失は、エンティティに ObjectB と ObjectA の直接のコレクションがなくなったことです。明示的なリンク テーブルを使用するだけで、関係は同じですが。
直接のコレクションを取り戻したいです。上記の 2 つの方法を組み合わせる (ModelBuilder またはデータ注釈を使用して) 方法はありますか?