我以前做过这个,但由于某种原因无法让它在EF5中工作。EF5代码第一多到迁移
通常它只是自动拿起当我有很多像这样一个多对多的关系...
public class Beer
{
public int Id { get; set; }
public virtual ICollection<Restaurant> Restaurants { get; set; }
}
public class Restaurant
{
public int Id { get; set; }
public virtual ICollection<Beer> Beers { get; set; }
}
我想要一个RestaurantsBeers表或任何只有RestaurantId和BeerId。
当我使用普通的Code First方式通过运行它的应用程序来创建它时。虽然
使用迁移,它不会产生该表。
我跑Enable-Migrations
然后Add-Migration FirstDb
终于Update-Database
......没有骰子...
也试过这个...
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Beer>()
.HasMany(b => b.Restaurants)
.WithMany(a => a.Beers)
.Map(m => m.MapLeftKey("BeerId")
.MapRightKey("RestaurantId")
.ToTable("BeersRestaurants"));
}
认为你需要在你的关系中使用foreignKey属性,这样就可以获得多对多的关系。无论如何,我一直使用这个属性并且永远不会遇到问题。 – davethecoder