2016-10-04 1 views
0

habe ich eine 1: n-Beziehung zwischen meinen beiden Modellen Workplace und Person geändert. Entity Framework hat die Tabelle, die sie verbindet, korrekt erstellt und trägt den Namen WorkplacePersons. Außerdem ist sie korrekt ausgefüllt. Wenn ich versuche, auf einem Arbeitsplatz eine Liste der Personen angezeigt bekam ich die Ausnahme:System.Data.SqlClient.SqlException: Ungültiger Objektname 'dbo.PersonWorkplaces'. Nach dem Wechsel von Eins-zu-Viele- in Viele-zu-Viele-Beziehung

System.Data.SqlClient.SqlException: Ungültige ‚dbo.PersonWorkplaces‘ Objektnamen

Also aus irgendeinem Grund ist es Suche PersonWorkplaces, die in OnModelCreating existiert definieren nicht, statt der Suche nach WorkplacePersons

+0

Haben Sie alle Zuordnungen in 'OnModelCreating' hinzugefügt? –

Antwort

0

Sie Ihre DbContext:

Sie müssen Entity Fr sagen Amework, um wie Sie wollen das Mapping, wie derzeit seine Rate und die Tabellen falsch herum. in Ihrem OnModelCreating fügen Sie etwas wie:

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{ 
    base.OnModelCreating(modelBuilder); 
    modelBuilder.Entity<Workplace>() 
     .HasMany(x => x.Persons) 
     .WithMany(x => x.Workplaces) 
     .Map(c => 
     { 
      c.MapLeftKey("WorkplaceId"); 
      c.MapRightKey("PersonId"); 
      c.ToTable("WorkplacePersons"); 
     }); 
} 
+0

Wie erhalten Sie die Liste der anzuzeigenden Personen? –

+0

@Benji: Sie sagten, Ihre Join-Tabelle heißt WorkplacePersons. Diese Zuordnung wird die Join-Tabelle als diese Tabelle konfigurieren. In welchem ​​Szenario sind Sie und was soll Ihre Join-Tabelle genau heißen? – DevilSuichiro

Verwandte Themen