2010-08-04 5 views
6

J'ai un projet qui utilise des jeux de données fortement typés.Jeu de données et modifications de schéma fortement typées

Supposons que je souhaite modifier le schéma de base de données de la base de données utilisée par cette application. J'ai une table nommée Pays et je veux ajouter une nouvelle colonne nommée "IsADemocracy" (c'est un exemple) du type de données SQL Server BIT.

Maintenant, comment mettre à jour l'ensemble de données fortement typé afin que je puisse utiliser ce nouveau champ dans l'application?

J'ai essayé d'ajouter la colonne dans la table Country de l'ensemble de données, lui ai donné le type de booléen et mappé sa propriété "Source" à "IsADemocracy".

Je peux accéder au champ dans l'application, lui donner une valeur, etc., mais les requêtes sous-jacentes faites par l'adaptateur de table n'ont pas été mises à jour pour refléter cette modification. Ils sont tels qu'ils étaient avant d'ajouter cette colonne dans l'ensemble de données fortement typé. J'espérais que ce que je ferais serait suffisant mais cela ne semble pas être le cas.

Dois-je régénérer les classes de jeux de données fortement en quelque sorte? Si oui, comment et quelles sont les implications?

Je pourrais probablement supprimer la table de pays dans le concepteur de jeu de données, et la redropper de l'explorateur de serveur, mais j'ai des requêtes de client dessus et je ne veux pas les perdre.

Merci.

Répondre

1
  1. Tout d'abord, assurez-vous d'avoir une sauvegarde

  2. Faites un clic droit sur le nœud .xsd dans l'Explorateur de solutions et sélectionnez « Exécuter outil personnalisé »

Mais attention à votre mesure Requêtes Ils ont tendance à disparaître sans avertissement. Pas toujours.

C'est une bonne raison de remplir ces requêtes à partir du fichier «principal» de la classe partielle.

+0

Désolé, essayé l'outil personnalisé Run avant et il ne semble pas mettre à jour les classes. J'ai également essayé de renommer l'adaptateur de table et de table dans le concepteur comme ce site Web suggère (http://www.devfuel.com/2007/03/strongly-typed-dataset-force-refresh-of.html), mais il doesn Ne soyez pas mis à jour. –

+1

Oui, vous avez raison. L'outil personnalisé (WSDL) ne lit pas le schéma-db à nouveau. Vous devrez re-construire chaque adaptateur (changé) (clic-droit, configurer). Notez que c'est un moyen sûr de perdre des personnalisations aux requêtes CRUD. –

+0

Les jeux de données typés ne sont simplement pas très intéressants lorsque le schéma change. –

2

Une autre suggestion - faites un clic droit sur la représentation de la table dans le concepteur, c'est-à-dire le xsd, et utilisez l'option Ajouter, pour ajouter une colonne. Une fois que vous avez la colonne, vous devez définir ses propriétés par défaut une nouvelle colonne est ajoutée en tant que chaîne. En procédant ainsi, vous conservez toutes les requêtes personnalisées, etc. ajoutées précédemment.

Cela vous permet d'ajouter des colonnes, la suppression est évidemment plus simple.

Questions connexes