Tech Days で Scott Gu によって紹介された EF 4.3 およびデータベース移行で MVC 4.0 を使用する方法を理解しようとしていましたが、多対多の関係が存在する場合に作成されるデータベースで問題が発生しました。
http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/2364は 21:14 に開始します
以下の画像に示すように、データベースの生成に使用されたコードのスニペットが含まれています。
public class Trip {
public int ID { get; set; }
public string Name { get; set; }
public DateTime Begin { get; set; }
public DateTime End { get; set; }
public Location HomeCountry { get; set; }
//public IList<Location> Itinerary { get; set; }
public ICollection<Location> Itinerary { get; set; }
public Trip()
{
this.Itinerary = new HashSet<Location>();
}
}
public class Location
{
public int ID { get; set; }
public string Name { get; set; }
public ICollection<Trip> Trips { get; set; }
public Location()
{
this.Trips = new HashSet<Trip>();
}
}
これが結果のデータベースでした。(私は画像を投稿したはずですが、まだ新しいユーザーであるため、画像を投稿できません)
テーブル 場所 PK ID (整数) 名前 (varchar) Trip_ID (整数) 旅行 PK ID (整数) 名前 (varchar) 開始 (日時) 終了 (日時) HomeCountry_ID (整数)
Locations テーブルに Trip_Id 列を追加するのではなく、Locations と Trips の間の多対多の関係 (多くの Locations を多くの Trips に適用できる) のために 3 番目の関係テーブルが作成されることを期待していたと思います。ここで私が何を間違えたか知っている人はいますか?これらのテーブルを正しく作成するためにデータベースの自動化を取得する方法はありますか?
ご協力いただきありがとうございます。
更新: 次のリンクを見つけましたが、EF 4.3 を使用してこれを機能させることができません。また、次の投稿を反映するようにコード スニペットを編集しました。
http://www.codeproject.com/Articles/234606/Creating-a-Many-To-Many-Mapping-Using-Code-First