[英]EF5 Code First Many to Many with Migrations
我以前做过这个,但由于某种原因无法让它在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; }
}
我想要一个只有RestaurantId和BeerId的RestaurantsBeers餐桌。
当我通过运行应用程序使用正常的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"));
}
根据我尝试追踪同一问题的经验,EF5.0RC尚不支持迁移以创建新的M2M关系。 这就是为什么它将用于标准数据库创建但不适用于迁移功能。 您可以从标准代码首次数据库初始化中导出create SQL,并立即在迁移时手动运行它。
这应该在EF5.0进入RTM时解决,但现在我们必须等待它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.