Ich habe ein Objekt in SQL (A), das eine viele-zu-viele-Beziehung zu einem anderen Objekt (B) hat. Ich bin gerade dabei, eine API-Schicht-DLL zu erstellen, die es dem Benutzer ermöglicht, Objekte des Typs B dem Typ A zuzuordnen. Im Moment würde der Benutzer eine Liste von Einträgen des Typs A und eine Liste von Einträgen des Typs B mit verschiedenen LINQ-Datenkontexten abrufen. Das Problem ist, dass der mit A verbundene Datenkontext alle Objekte aus dem mit B verbundenen Datenkontext so behandelt, als ob sie neu wären, und versucht, sie einzufügen, wenn ich SubmitChanges() aufrufe. Gibt es eine Möglichkeit, dem Datenkontext A mitzuteilen, dass diese Objekte bereits existieren und nicht neu erstellt werden müssen? Der Code, den ich schreiben möchte, sieht in etwa so aus (ich rufe A Service und B Output auf):
List<Service> svcs = Service.GetServices();
List<Output> outs = Output.GetOutputs();
svcs[0].OutputCollection.Add(outs);
svcs[0].Save();
Jedes Service-Objekt in meinem Beispiel hat einen Verweis auf den Datenkontext, der es aus der Datenbank gezogen hat, und die Funktion Save ruft DataContext.SubmitChanges() auf; Der obige Code löst eine Ausnahme aus, weil er versucht, den bereits vorhandenen Output wieder zur Tabelle hinzuzufügen.
Ich weiß, das war lang und ich bin mir nicht sicher, ob ich mein Problem gut erklärt habe. Jede Einsicht oder jeder Vorschlag wäre hilfreich.