2010-08-04 5 views
6

Ich habe ein Projekt, das stark typisierte Datasets verwendet.Stark typisierte Datasets und Schemaänderungen

Angenommen, ich möchte das Datenbankschema der von dieser Anwendung verwendeten Datenbank ändern. Ich habe eine Tabelle namens Country und ich möchte eine neue Spalte namens "IsADemocracy" (das ist ein Beispiel) des SQL Server-Datentyps BIT hinzufügen.

Wie aktualisiere ich nun das stark typisierte Dataset, damit ich dieses neue Feld in der Anwendung verwenden kann?

Ich habe versucht, die Spalte in der Tabelle Country auf dem Dataset hinzuzufügen, gab ihm den Typ der booleschen und seine "Source" -Eigenschaft auf "IsADemocracy" zugeordnet.

Ich kann auf das Feld in der Anwendung zugreifen, geben Sie einen Wert usw., aber die zugrunde liegenden Abfragen, die von der Tabellenadapter vorgenommen wurden, wurden nicht aktualisiert, um diese Änderung widerzuspiegeln. Sie sind so, wie sie waren, bevor ich diese Spalte in den stark typisierten Datensatz eingefügt habe. Ich hoffte, was ich getan habe, wäre genug, aber es scheint nicht der Fall zu sein.

Sollte ich die stark Datasets Klassen irgendwie regenerieren? Wenn ja, wie und was sind die Konsequenzen?

Ich könnte wahrscheinlich die Country-Tabelle im Dataset-Designer löschen und es aus dem Server-Explorer erneut, aber ich habe Kundenanfragen darauf, und ich möchte sie nicht verlieren.

Danke.

Antwort

1
  1. Erstens, stellen Sie sicher, dass Sie ein Backup

  2. Direkt an der XSD-Knoten in Projektmappen-Explorer klicken und wählen Sie "Ausführen Anpassungs-Tool"

Aber mit Ihrer Gewohnheit vorsichtig sein Abfragen Sie neigen dazu, ohne Vorwarnung zu verschwinden. Nicht immer.

Dies ist ein guter Grund, um diese Abfragen aus der partiellen Klasse "Haupt" -Datei ausfüllen.

+0

Sorry, versuchte das benutzerdefinierte Ausführen-Tool zuvor und es scheint nicht die Klassen zu aktualisieren. Ich habe auch versucht, den Tisch und den Tischadapter im Designer umzubenennen, wie diese Website vorschlägt (http://www.devfuel.com/2007/03/strongly-typed-dataset-force-refresh-of.html), aber es tut nicht werde nicht aktualisiert. –

+1

Ja, du hast Recht. Das benutzerdefinierte Tool (WSDL) liest das Datenbankschema nicht erneut. Sie müssen jeden (geänderten) Adapter erneut erstellen (klicken Sie mit der rechten Maustaste, konfigurieren). Beachten Sie, dass dies eine sichere Möglichkeit ist, Anpassungen an CRUD-Abfragen zu verlieren. –

+0

Typisierte Datasets sind einfach nicht sehr nett, wenn sich das Schema ändert. –

2

Ein weiterer Vorschlag - klicken Sie mit der rechten Maustaste auf die Darstellung der Tabelle im Designer, d. H. Die xsd, und verwenden Sie die Option Add, um eine Spalte hinzuzufügen. Sobald Sie die Spalte haben, müssen Sie ihre Eigenschaften einstellen, da standardmäßig eine neue Spalte als String hinzugefügt wird. Auf diese Weise behalten Sie benutzerdefinierte Abfragen usw. bei, die zuvor hinzugefügt wurden.

Dies ermöglicht es Ihnen, Spalten hinzuzufügen, offensichtlich löschen ist einfacher.