Parent-Child Relation und Identity Column
From: Wolf Hermann (no.spam_at_nit-consultants.de)
Date: 08/09/04
- Next message: Wolf Hermann: "Re: DataAdapter.Update <-> InsertTrigger -> Parallelitätsverletzung"
- Previous message: Armin: "Direkter Oracle Zugriff aus WebService möglich ?"
- Next in thread: Peter Fleischer: "Re: Parent-Child Relation und Identity Column"
- Reply: Peter Fleischer: "Re: Parent-Child Relation und Identity Column"
- Messages sorted by: [ date ] [ thread ]
Date: Mon, 9 Aug 2004 11:33:22 +0200
Hallo NG,
ich bin schon einige Zeit am Probieren und komme nicht zu einem
zufriedenstellenden Ergebnis. Folgendes Problem: Ich arbeite mit C# und
einer MSDE Datenbank. Dabei spiele ich momentan mit den ADO.NET
Relationen herum (bis dato habe ich diese immer "manuell" überwacht und
programmiert). Jetzt wundere ich mich über folgenden Sachverhalt:
Natürlich setzt ADO.Net, je nach Seed und Increment Einstellung eine
lokale Identity-ID für einen neuen Datensatz im lokalen Dataset. Um
Eindeutigkeiten zu gewährleisten, habe ich diese beiden Eigenschaften in
meinem Dataset auf -1 gesetzt, neue Datensätze erhalten also in der
DataRowView des Datensatzes eine -1. Ich habe jetzt ein Formular, in dem
die Kopfdaten (Parent) und beliebig viele 1-n Informationen (Childs)
angezeigt werden. Ist der Header schon einmal gespeichert und ich arbeite
mit einer "wirklichen" Identity ID (also der auf dem SQL Server
verwendeten), funktioniert das Hinzufügen der Child-Datensätze auch
problemlos (beim AddNew des Grids setze ich die Child-Column auf den ID
Wert des Parents). Wie soll ich aber vorgehen, wenn ich den Header und
die Childs in einem Arbeitsschritt anlegen will ?
Der Header erhält nach dem Update die ID -1, die Childs kann ich, solange
ich nur im lokalen Dataset arbeite, auch auf diesen im Foreign Key
setzen. Will ich die Clients aber "Updaten", bekomme ich einen Foreign
Key Fehler. Natürlich kann ich den Parent beim Updaten auch auf die
tatsächlich vergebene ID gegenprüfen, wenn ich aber versuche im Dataset
die "wirkliche" ID des Parents in den Child-Datensätze abzulegen, erhalte
ich einen Fehler, da dieser Parent ja im Dataset nicht existiert. Beide
Vorgehensweisen führen mich nicht zu dem gewünschten Ergebnis:
1) Ich versuche Parents und Childs (die -1 im Identity bzw. Foreign Key
verwenden) zu aktualisieren und die Childs sagen es gibt in der Datenbank
keinen Parent mit -1 ID.
2) Nach der Ermittlung der tatsächlich vergebenen ID (im RowUpdated des
Datasets) will ich diese in die Foreign Key Column der Childs einspielen.
Diese sagen mir aber, ein Parent mit dieser ID existiert nicht, da dieser
ja im Dataset noch die lokale ID -1 besitzt.
Ich hoffe mich halbwegs klar ausgedrückt zu haben und wäre über eine
Hilfestellung sehr dankbar, viele Grüße
Wolf
- Next message: Wolf Hermann: "Re: DataAdapter.Update <-> InsertTrigger -> Parallelitätsverletzung"
- Previous message: Armin: "Direkter Oracle Zugriff aus WebService möglich ?"
- Next in thread: Peter Fleischer: "Re: Parent-Child Relation und Identity Column"
- Reply: Peter Fleischer: "Re: Parent-Child Relation und Identity Column"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|