Entwickler-Ecke
Datenbanken (inkl. ADO.NET) - Linq-> Daten innerhalb der DB kopieren
Christoph1972 - So 09.02.14 11:55
Titel: Linq-> Daten innerhalb der DB kopieren
Hallo Leute,
ich möchte mit Linq Daten innerhalb einer Datenbank in eine Archiv-Tabelle kopieren.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28:
| private void InsertResultValues(List<string> ids) { using (SequencerEntities sequencerContext = new SequencerEntities(EntityConnectionString())) { foreach (string id in ids) { var t = from results in sequencerContext.ResultValues where results.C_ID == id select results;
if (t.FirstOrDefault() != null) { foreach (var res in t) { ResultValuesArchiv newVal = new ResultValuesArchiv() { C_ID = res.C_ID, Element = res.Element, Value = res.Value, Unit = res.Unit }; sequencerContext.ResultValuesArchiv.AddObject(newVal); sequencerContext.SaveChanges(); } } } } } |
Fehlermeldung: "Diesem Command ist bereits ein geöffneter DataReader zugeordnet, der zuerst geschlossen werden muss."
Hm, was bedeutet das im Detail? Verstehe ich nicht wirklich??
Könnte mir bitte jemand erklären was das bedeutet? Was mache ich hier falsch??
Christoph1972 - So 09.02.14 12:04
Erledigt, SaveChanges() gehört hinter die Iteration.
Christian S. - So 09.02.14 12:07
Hm, merkwürdig. Wenn es dieselbe Tabelle wäre, könnte ich das nachvollziehen, aber so ...
Hast Du mal versucht, fürs Schreiben einen separaten Kontext zu erstellen?
btw, ist es nicht sinnvoller, SaveChanges außerhalb der Schleife aufzurufen?
//edit: Mist, warum wurde ich nicht informiert, das hier eine Antwort kam? :gruebel:
Christoph1972 - So 09.02.14 14:32
Also, irgendwie ist hier etwas merkwürdig. Jetzt bekomme ich eine UpdateExeption:
Die INSERT-Anweisung steht in Konflikt mit der FOREIGN KEY-Einschränkung 'FK_ResultValuesArchiv_ResultsArchiv'. Der Konflikt trat in der Sequencer-Datenbank, Tabelle 'dbo.ResultsArchiv', column 'C_ID' auf.
Scheinbar hat der Server ein Problem damit, das die PKs auf beiden Tabellen identisch sind. Hm, da muss ich heute Abend noch mal schauen was da los ist.....
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!