2016-05-31 4 views
0

Ich habe diese Tabellen SzenarioEntity Framework 6 mehr verschachtelte Master-Detail-Insert

model

So wie Sie gibt es eine mehr verschachtelte Master-Detail-Tabelle sehen kann, und ich habe eine requeriment wo ich einfügen müssen Zu einem Zeitpunkt die ersten drei Entitäten, verwende ich Entity Framework 6, Database First. (mvc Web API2). Ich schaffte es zunächst zwei Einheiten auf diese Weise zu tun:

Entity1 entity1 = new Entity1() 
    { 
     Field = "a field" 
    }; 

    entity1.Entity2.Add(new Entity2() 
    { 
     Field = "another field" 

    }); 

// ****************************** *
// und das speichern ist:

using (var context = new backendEntities()) 
{ 
    context.Entity1.Add(entity1); 
    context.SaveChanges(); 
} 

und spart für die ersten beiden Einheiten in Ordnung, aber ich bin nicht in der Lage oder nicht finden, einen Weg, um die nächste Einheit für das Hinzufügen (Entity3). Alle Primärschlüssel sind Identity Autonumerics. Wie kann ich diese drei Entitäten gleichzeitig speichern? Danke Leute für deine Hilfe.

+0

Was meinen Sie mit "Entity3", verwenden Sie auch * Code-First * oder * Model-First *? – Luiso

+0

Was hält Sie davon ab, 'entity2.Entity3.Add (..);'? –

+0

@Luiso - Entity (1,2,3,4) sind Tabellen. Ich benutze Datenbank zuerst. –

Antwort

1

Möchten Sie Folgendes tun?

Entity1 entity1 = new Entity1() 
{ 
    Field = "a field" 
}; 

var entity2 = new Entity2() 
{ 
    Field = "another field" 
}; 

entity1.Entity2.Add(entity2); 

var entity3 = new Entity3() 
{ 
    Field = "another field" 
}; 

entity2.Entity3.Add(entity3); 

var entity4 = new Entity4() 
{ 
    Field = "another field" 
}; 

entity3.Entity4.Add(entity4); 

using (var context = new backendEntities()) 
{ 
    context.Entity1.Add(entity1); 
    context.SaveChanges(); 
} 
+0

Funktioniert perfekt Mann, vielen Dank. –