Frage

Ich habe ein Problem mit Linq to SQL InsertOnSubmit, die nur für den ersten Punkt in einer Tabelle zu arbeiten scheint.

Zum Beispiel mit dem folgenden:

var noteDetail1 = new NoteDetail() { Title = "Test Note Title 1", NoteText = "Test note" };
var waiverDetail1 = new WaiverDetail() { Title = "Test Waiver Title 1", NoteText = "Test waiver details text" };
var riskDetail1 = new RiskDetail() { Title = "Test Risk Title 1", NoteText = "Test risk details text" };
context.Notes.InsertOnSubmit(noteDetail1);
context.Notes.InsertOnSubmit(riskDetail1);
context.Notes.InsertOnSubmit(waiverDetail1);
context.SubmitChanges();

ich nur die erste Einheit ( „Test Note Titel 1“) in die Datenbank eingefügt. Wenn ich ein SubmitChanges nach jedem InsertOnSubmit platzieren, werden alle Zeilen erfolgreich eingefügt.

Die oben genannten Typen sind alle aus einer Schuldverschreibung Klasse geerbt, werden in die gleiche Tabelle so eingefügt.

Ich bin jedoch, erlebt das gleiche Problem mit nicht-abgeleiteten Klassen.

Ich habe eine lange Zeit damit verbracht, diese suchen, aber nicht finden, was ich falsch gemacht habe. Die ganze Idee von InsertOnSubmit / SubmitChanges ist, so dass Sie mehrere Änderungen tun können, so muss es etwas einfacher sein, die ich bin fehlt.

War es hilfreich?

Lösung

Das Problem war, dass ich überschriebenen Equals in meinen Entitätsklassen hatte, so dass Organisationen, die mit der gleichen Id gleich betrachtet wurden. Offensichtlich Linq to SQL verwendet diese irgendwann und immer das Ergebnis, dass alle neuen Einheiten gleich sind (weil sie alle die Id von 0 haben).

Danke Jonathan für Sein meine "Rubber Duck" .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top