2012-03-26 14 views
0

Ich habe die folgenden Klassen:Wie mache ich eine Beziehung von vielen zu vielen in Entity Framework 4.3?

public class Entity 
{ 
    public long Id {get;set;} 
} 

public abstract class Base 
{ 
    public long Id {get;set;} 
    public abstract ICollection<Entity> Entities {get;set;} 
} 

public class Child : Base 
{ 
    public override ICollection<Entity> Entities {get;set;} 
} 

Die Abbildung:

modelBuilder.Entity<Child>().Map(
    m => { 
      m.ToTable("Children"); 
      m.MapInheritedProperties(); 
     }); 
modelBuilder.Entity<Child>().HasMany(m => m.Entities).WithMany(); 

ich die folgende Ausnahme erhalten:

The navigation property 'Entities' is not a declared property on type 
'EventCriteria'. Verify that it has not been explicitly excluded from the model 
and that it is a valid navigation property. 

Was mache ich falsch?

Antwort

0

Sie zuordnen TPC Vererbung (Sie nennen MapInheritedProperties) und in diesem Fall Entities Sammlung müssen in Ihrem Base Einheit abgebildet werden, nicht in Child Einheit.

+0

Eigentlich habe ich eine andere Child-Klasse, Child2, die eine andere Tabelle "Children2" zugeordnet, und ich möchte nicht TPT verwenden, sondern Tabelle pro konkreten Typ verwenden möchten. Deshalb habe ich map geerbte Eigenschaften aufgerufen. –

Verwandte Themen