2012-03-30 5 views
4

Den EF-Code zuerst verwenden 4.3 Ich versuche, einen Objektbaum mit den erforderlichen erforderlichen Beziehungen und den erforderlichen optionalen Beziehungen zu modellieren.Erster Fehler des EF-Codes "Der angegebene Index existiert bereits. [IX_Id]" für den Objektbaum

Hier ist eine einfache Darstellung dieser

public class Top 
{ 
    public int Id { get; set; } 
    public virtual Middle Middle { get; set; } 
} 

public class Middle 
{ 
    public int Id { get; set; } 
    public virtual Child Child { get; set; } 
} 

public class Child 
{ 
    public int Id { get; set; } 
} 
Klassen

Hier ist der

OnModelCreating Code ist
modelBuilder.Entity<Top>().HasRequired(t => t.Middle).WithRequiredPrincipal().WillCascadeOnDelete(); 
modelBuilder.Entity<Middle>().HasRequired(t => t.Child).WithOptional().WillCascadeOnDelete(); 

Diese den Fehler "Der angegebene Index ist bereits vorhanden. [IX_Id]" auf SQLCE produziert

Nach Überprüfung des Datenbankschemas erstellen beide fließenden API-Konfigurationslinien des Modellbinders einen Index IX_Id auf der Registerkarte le Middles.

Kann jemand dieses Problem umgehen?

Gibt es eine Möglichkeit, den Indexnamen festzulegen?

Vielen Dank! Pascal

+0

Versuchen Sie eine Eins-zu-eins-Beziehung zu erreichen? –

+0

Eigentlich Eins-zu-Eins-zu-Eins – PascalN

Antwort

0

Verwenden Sie diesen Code;

public class Top 
{ 
    public int Id { get; set; } 

    public int MiddleId { get; set; } 

    [ForeignKey("MiddleId")] 
    public virtual Middle Middle { get; set; } 
} 

public class Middle 
{ 
    public int Id { get; set; } 

    public int ChildId { get; set; } 

    [ForeignKey("ChildId")] 
    public virtual Child Child { get; set; } 
} 

public class Child 
{ 
    public int Id { get; set; } 
} 
Verwandte Themen