2016-06-29 16 views
0

ich zwei Klassen:System.Data.SqlClient.SqlException: Ungültiger Spaltenname ‚REFERENCE_ID‘

public class Product 
{ 
    public Guid Id {get;set;} 
    public IList<Reference> References {get;set;} 
} 

public class Reference 
{ 
    public Guid Id {get;set;} 
} 

Beide Tabelle hat viele zu viele Beziehung und ich in Kontext-Datei hinzugefügt.

modelBuilder.Entity<Product>() 
        .HasMany<Reference>(p => p.References) 
        .WithMany() 
        .Map(pxar => 
        { 
         pxar.MapLeftKey("Product_Id"); 
         pxar.MapRightKey("Reference_Id"); 
         pxar.ToTable("ProductsXReferences"); 
        }); 

Nicht sicher, wie Sie das Problem beheben können. Ich habe meine Datenbanktabellen und Verbindungszeichenfolge in Web.Config überprüft, alles sieht gut aus.

+0

Nun, * etwas * falsch ist. Wie sieht die ausgeführte SQL-Abfrage aus? Und bist du sicher, dass du die richtige Datenbank überprüfst? –

Antwort

0

Sie vermissen die Sammlung von Produkten auf Referenz. Versuchen:

public class Product 
{ 
    public Guid Id {get;set;} 
    public ICollection<Reference> References {get;set;} 
} 

public class Reference 
{ 
    public Guid Id {get;set;} 
    public ICollection<Product> Products {get;set;} 
} 

modelBuilder.Entity<Product>() 
      .HasMany(p => p.References) 
      .WithMany(r => r.Products) 
      .Map(pxar => 
      { 
       pxar.MapLeftKey("Product_Id"); 
       pxar.MapRightKey("Reference_Id"); 
       pxar.ToTable("ProductsXReferences"); 
      }); 

https://msdn.microsoft.com/en-us/data/hh134698.aspx

+0

Dies kann ohne "Produkte" Sammlung erfolgen; 'WithMany()' ohne ein Argument ist ein gültiger Code. –