ich auf einer vorhandenen Tabelle arbeite, wo ich es sehen können drei Primärschlüssel (!): C# SQL-Kopie Reihen mit 3 Primärschlüssel
Ich möchte die vorhandenen Zeilen kopieren, ändern, um die ctid Spalte und kopieren Sie sie dann erneut an das Ende der Tabelle. Ich versuche das und ich bekomme den Fehler:
Cannot add an entity with a key that is already in use.
Wahrscheinlich, weil ich die Zeilen kopiere und sie mit den gleichen Primärschlüsseln hinzufüge. Wie kann ich das lösen? Ist es möglich, es zu lösen, ohne das DB-Schema zu ändern (ich denke darüber hinaus, ctid als Primärschlüssel hinzuzufügen)?
-Code
var testsDefault = (from i in dc.TestUnits
where i.ctid == null
select i).ToList();
List<DAL.TestUnit> TestList = new List<DAL.TestUnit>();
foreach (var test in testsDefault)
{
DAL.TestUnit newTest = new DAL.TestUnit();
newTest.TestID = test.TestID;
newTest.PatientType = test.PatientType;
newTest.Unit = test.Unit;
newTest.ctid = "105";
TestList.Add(newTest);
}
dc.TestUnits.InsertAllOnSubmit(TestList);
dc.SubmitChanges();
Können Sie uns bitte Ihren Code zeigen, gegeben? – mjwills
Das sind nicht 3 Schlüssel. Das ist ein Schlüssel, der sich über 3 Spalten erstreckt. –
Mehrere Primärschlüssel nennen wir einen zusammengesetzten Schlüssel –