In meinem School EF Model
, habe ich Kids
und Tutorials
in viele-zu-viele-Beziehung. Nehmen wir an, dass sowohl Kinder als auch Tutorials bereits vorhandene Elemente enthalten. Jetzt möchten wir nur ihre bestehenden Beziehungen ändern. Das heißt, einige Tutorials von einem Kind hinzufügen/löschen.Entity Framework Aktualisieren viele bis viele Beziehungen richtig
var kid; //the request target to modify relationships
//kid.Tutorials has the old existing relationships to be modified by add/del
var tutorialsToAdd; //the request to add relationships
var tutorialsToDel; //the request to del relationships
using (var conn = new SchoolEFModels(efConnectionStr)) {
conn.Kids.Attach(kid);
kid.Tutorials.ForEach(t => conn.Tutorials.Attach(t));
kid.Tutorials.AddRange(tutorialsToAdd); //simple add extension in batch
kid.Tutorials.RemoveRange(tutorialsToDel); //simple del extension in batch
conn.SaveChanges();
}
Wenn ich das tue, habe ich eine Ausnahme zu sagen:
"Cannot insert duplicate key in object 'dbo.Tutorials'. The duplicate key value is (10)."
Ich kann für mich EF versucht, neue Tutorial Elemente zu erstellen, anstatt die Aktualisierung der bestehenden Beziehung sehen. Was ich nicht will. Du hast mich missverstanden EF!
Was ist falsch an meinem Code? Wie kann ich viele-zu-viele-Beziehungen aktualisieren?
https://msdn.microsoft.com/en-us/magazine/dn166926.aspx –
@GertArnold, es ist bis MVC Scaffolding zu verkaufen. Ich habe nicht speziell über das Many-to-Many-Update-Handling gesprochen. Meine App hat eine andere Struktur als das. So bin ich immer noch verloren :( – Tom