2012-04-15 3 views
0

Ich habe 4 Tabellen, die so wie mit:eine Schwierigkeit mit EF Fluent API

public class Table1 
{ 
public int Id {get;set;} 
public string Name {get;set;} 
} 

public class Table2 
{ 
public int Id {get;set;} 
public string Name {get;set;} 
public int Table1Id {get;set;} 
public virtual Table1 {get; set;} 
} 

public class Table3 
{ 
public int Id {get;set;} 
public string Name {get;set;} 
public int Table2Id {get;set;} 
public virtual Table2 {get; set;} 
} 

public class Table4 
{ 
public int Id {get;set;} 
public string Name {get;set;} 
public int Table3Id {get;set;} 
public virtual Table3 {get; set;} 
} 

Und meine fließend API ist wie so:

modelBuilder.Entity<Table2>().HasRequired(x => x.Table1).WithMany().WillCascadeOnDelete(false); 
modelBuilder.Entity<Table3>().HasRequired(x => x.Table2).WithMany().WillCascadeOnDelete(false); 
modelBuilder.Entity<Table4>().HasRequired(x => x.Table3).WithMany().WillCascadeOnDelete(false); 

Wenn ich versuche, um die Tabellen zu säen, ich dieser Fehler.

die INSERT-Anweisung in Konflikt mit der FOREIGN KEY-Einschränkung „FK_Table4_Table3_Table3Id der Konflikt trat in Datenbank MyDb, Registerkarte le "dbo.Table3", Spalte "Id". Die Anweisung wurde beendet. "

Ich kann nicht sehen, wo ich falsch diese

+0

Können Sie den Code von "* Wenn ich versuche, die Tabellen * zu säen"? – Slauma

Antwort

1

tun gehe ...

modelBuilder.Entity<Table2>() 
    .HasRequired(t => t.Table1) 
    .WithMany() // t => t.AllTable2s) 
    .HasForeignKey(t => t.Table1ID); 

... und vor allem make it compile! :) (z. B. public virtual Table1 {get; set;} in public virtual Table1 Table1 {get; set;}

Verwandte Themen