EF5代码首先有许多人迁移

时间:2012-06-15 00:04:32

标签: asp.net-mvc entity-framework ef-code-first ef-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方式创建它时,只需运行应用程序即可。

EF Working

虽然使用迁移,但它不会创建该表。

EF Not working

我跑了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"));
    }

1 个答案:

答案 0 :(得分:3)

根据我尝试追踪同一问题的经验,EF5.0RC尚不支持迁移以创建新的M2M关系。这就是为什么它将用于标准数据库创建但不适用于迁移功能。您可以从标准代码首次数据库初始化中导出create SQL,并立即在迁移时手动运行它。

这应该在EF5.0进入RTM时解决,但现在我们必须等待它。