5

私は以前これを行っていますが、何らかの理由で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; } 
} 

私はちょうどRestaurantIdとBeerIdでRestaurantsBeersテーブルまたは何を望んでいます...私はこのような多くの関係に多くを持っていたときにピックアップします。

アプリケーションを実行するだけで通常のコードファーストの方法で作成すると機能します。マイグレーションを使用して

EF Working

しかし、それは、そのテーブルを作成することはありません。

EF Not working

私はAdd-Migration FirstDbその後、Enable-Migrationsを実行し、最終的にUpdate-Database ...ないサイコロ...

はまた、新たなM2M関係を作成するために...

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")); 
    } 
+0

あなたの関係でforeignKey属性を使用する必要があると思うなら、これは多対多の関係を拾うべきです。私はいつもその属性を使用しており、とにかく問題に陥ることはありません。 – davethecoder

答えて

3

移行し、これをされてみましたEF5.0RCでは、私の経験ごとに同じ問題を追跡しようとしています。したがって、標準のDB作成では機能しますが、移行機能では機能しません。 create SQLを標準コードの最初のデータベース初期化からエクスポートし、今すぐマイグレーションで手動で実行することができます。

これは、EF5.0がRTMになったときに解決する必要がありますが、現在はそれを待たなければなりません。

+0

ありがとう、知っておいてよかった! – jcreamer898

+0

これを読んだ人のための更新。 EF 5 Code First MigrationsはこのようにM2M定義をサポートしています。 –

+0

私が言ったように、それはRTMリリースの前に解決されました。こうして、答えが述べられているとおりに正しく機能するようになりました。 – VulgarBinary

関連する問題