5

Ich habe dies schon einmal getan, aber aus irgendeinem Grund kann es nicht in EF5 arbeiten.EF5-Code zuerst viele zu viele mit Migrationen

Normalerweise nimmt es nur automatisch, wenn ich wie dieser viele zu viele Beziehungen haben ...

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; } 
} 

ich eine RestaurantsBeers Tisch oder was auch immer mit nur RestaurantId und BeerId bin zu wollen.

Wenn ich es mit dem normalen Code ersten Weg erstellen, indem Sie einfach die Anwendung läuft es funktioniert.

EF Working

Mit Migrationen aber es wird nicht die Tabelle erstellen.

EF Not working

Ich lief Enable-Migrations dann Add-Migration FirstDb und schließlich Update-Database ... Keine Würfel ...

auch schon versucht, diese ...

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

denke, Sie müssen das ForeignKey-Attribut auf Ihre Beziehungen verwenden, sollte dies die Beziehung von vielen zu vielen usw abholen. Ich habe dieses Attribut immer benutzt und stoße nie auf Probleme. – davethecoder

Antwort

3

Migrations eine neue M2M-Beziehung zu erstellen sind noch nicht in EF5.0RC pro meiner Erfahrung versucht, das gleiche Problem zu finden. Daher wird es bei der Erstellung von Standard-DBs funktionieren, funktioniert aber nicht mit Migrationsfunktionen. Sie können das create SQL aus der Standardcodeinfizierung der ersten Datenbank exportieren und es bei der Migration vorläufig manuell ausführen.

Dies sollte gelöst werden, wenn EF5.0 RTM geht, aber jetzt müssen wir warten.

+0

Danke, das ist gut zu wissen! – jcreamer898

+0

Update für jeden, der dies liest. EF 5 Code First Migrations unterstützt auf diese Weise M2M-Definitionen. –

+0

Wie ich schon sagte, wurde es vor der RTM-Veröffentlichung gelöst. So funktioniert nun genau so, wie die Antwort sagt. – VulgarBinary