正如 Scott Gu 在 Tech Days 上介绍的那样,我一直在尝试将 MVC 4.0 与 EF 4.3 和数据库迁移结合使用,并且遇到了在存在多对多关系时创建的数据库的问题。
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 (int) 旅行 PK ID(整数) 名称(varchar) 开始(日期时间) 结束(日期时间) HomeCountry_ID (int)
我想我希望为 Locations 和 Trips 之间的多对多关系创建第三个关系表(许多 Locations 可以应用于许多 Trips),而不是将 Trip_Id 列添加到 Locations 表中。有谁知道我在这里做错了什么?有没有办法让数据库自动化来正确创建这些表?
提前感谢您的所有帮助!
更新: 我找到了以下链接,但我仍然无法使用 EF 4.3 让它工作。我还编辑了我的代码片段以反映以下帖子。
http://www.codeproject.com/Articles/234606/Creating-a-Many-To-Many-Mapping-Using-Code-First