XSD-DataSets und das Ignorieren von Fremdschlüsseln
Frage
Ich habe eine ziemlich standardmäßige Tabelleneinrichtung in einer aktuellen Anwendung, die das verwendet .NETZ XSD DataSet
Und TableAdapter
Merkmale.Mein contracts
Die Tabelle besteht aus einigen Standardvertragsinformationen mit einer Spalte für die primary department
.Diese Spalte ist eine Unbekannter Schlüssel zu meinem Departments
Tabelle, in der ich das Grundlegende speichere department name
, id
, notes
.Das ist bei mir alles eingerichtet und funktioniert SQL Server.
Wenn ich das XSD-Tool verwende, kann ich beide Tabellen gleichzeitig hineinziehen und es erkennt/erstellt automatisch den Fremdschlüssel, den ich zwischen diesen beiden Tabellen habe.Das funktioniert hervorragend, wenn ich mich auf meiner Hauptseite befinde und Vertragsdaten ansehe.
Wenn ich jedoch auf meine Verwaltungsseite gehe, um die Abteilungsdaten zu ändern, mache ich normalerweise Folgendes:
Dim dtDepartment As New DepartmentDataTable()
Dim taDepartment As New DepartmentTableAdapter()
taDepartment.Fill(dtDepartment)
An diesem Punkt wird jedoch eine Ausnahme ausgelöst, die besagt, dass hier eine Fremdschlüsselreferenz defekt ist. Ich vermute, da ich diese nicht habe Contract DataTable
gefüllt.
Wie kann ich dieses Problem beheben?Ich weiß, dass ich einfach den Fremdschlüssel aus der XSD entfernen kann, damit alles gut funktioniert, aber es ist schön, dort die zusätzliche Integritätsprüfung zu haben und zu gewährleisten, dass das XSD-Schema mit dem SQL-Schema in der Datenbank übereinstimmt.
Lösung
Sie können versuchen, Check-Constraints für das DataSet zu deaktivieren (es befindet sich in seinen Eigenschaften) oder die Eigenschaften dieser Beziehung zu ändern und den Schlüssel in eine einfache Referenz zu ändern – ganz nach Ihrem Geschmack.