EF5代码首先有许多人迁移

jcr*_*898 5 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; }
}
Run Code Online (Sandbox Code Playgroud)

我想要一个只有RestaurantId和BeerId的RestaurantsBeers餐桌.

当我通过运行应用程序使用正常的Code First方式创建它时,它可以工作.

EF工作

但是,使用迁移,它不会创建该表.

EF不工作

我跑了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"));
    }
Run Code Online (Sandbox Code Playgroud)

Vul*_*ary 3

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

当 EF5.0 进入 RTM 时,这个问题应该会得到解决,但现在我们必须等待。